Giter Club home page Giter Club logo

numworks-tic-tac-toe's Introduction

numworks-tic-tac-toe

This is a native Tic-Tac-Toe game app for the NumWorks calculator.

Getting started

git clone https://github.com/boricj/numworks-tic-tac-toe.git apps/tic_tac_toe
make PLATFORM=simulator EPSILON_APPS='tic_tac_toe settings' EPSILON_I18N='en fr'

numworks-tic-tac-toe's People

Contributors

boricj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

numworks-tic-tac-toe's Issues

Error with override in compilation

It's the "practically" same error that on rpn numworks in compilation

HOSTCC  kandinsky/fonts/rasterizer
RASTER  kandinsky/fonts/LargeFont.cpp
RASTER  kandinsky/fonts/SmallFont.cpp
I18N    apps/i18n.cpp
QSTRDAT python/port/genhdr/qstrdefs.generated.h
HOSTCC  escher/image/inliner
CXX     apps/apps_container_launch_default.o
CXX     apps/settings/main_controller_prompt_none.o
CXX     apps/apps_container_prompt_none.o
CXX     ion/src/simulator/init.o
CXX     ion/src/simulator/boot/main.o
CXX     ion/src/simulator/display/fltklcd.o
CXX     ion/src/simulator/keyboard/fltkkbd.o
CXX     ion/src/shared/crc32.o
ion/src/shared/crc32.cpp: In function ‘uint32_t crc32Helper(const uint8_t*, size_t, bool)’:
ion/src/shared/crc32.cpp:16:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = (int) wordLength * uint32ByteLength; i < byteLength; i++) {
                                                     ~~^~~~~~~~~~~~
CXX     ion/src/shared/console_line.o
CXX     ion/src/shared/console_stdio.o
CXX     ion/src/shared/events_modifier.o
CXX     ion/src/shared/power.o
CXX     ion/src/shared/random.o
CXX     ion/src/shared/timing.o
CXX     ion/src/shared/dummy/backlight.o
CXX     ion/src/shared/dummy/battery.o
CXX     ion/src/shared/dummy/display.o
CXX     ion/src/shared/dummy/fcc_id.o
CXX     ion/src/shared/dummy/led.o
CXX     ion/src/shared/dummy/serial_number.o
CXX     ion/src/shared/dummy/stack.o
CXX     ion/src/shared/dummy/usb.o
CXX     ion/src/shared/crc32_eat_byte.o
CXX     ion/src/shared/decompress.o
CXX     ion/src/shared/events.o
CXX     ion/src/shared/platform_info.o
CXX     ion/src/shared/storage.o
CXX     ion/src/shared/unicode/utf8_decoder.o
CXX     ion/src/shared/unicode/utf8_helper.o
ion/src/shared/unicode/utf8_helper.cpp: In function ‘int UTF8Helper::CountOccurrences(const char*, CodePoint)’:
ion/src/shared/unicode/utf8_helper.cpp:19:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (*i == c) {
           ~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp: In function ‘const char* UTF8Helper::CodePointSearch(const char*, CodePoint)’:
ion/src/shared/unicode/utf8_helper.cpp:41:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (*result != 0 && *result != c) {
                            ~~~~~~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp: In function ‘const char* UTF8Helper::NotCodePointSearch(const char*, CodePoint, bool, const char*)’:
ion/src/shared/unicode/utf8_helper.cpp:73:92: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while ((goingLeft ?codePointPointer > s : *codePointPointer != 0) && *codePointPointer == c) {
                                                                          ~~~~~~~~~~~~~~~~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp: In function ‘const char* UTF8Helper::PerformAtCodePoints(const char*, CodePoint, UTF8Helper::CodePointAction, UTF8Helper::CodePointAction, void*, int, int, CodePoint, bool, const char*, const char*)’:
ion/src/shared/unicode/utf8_helper.cpp:187:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       while (*i != stoppingCodePoint && *i != 0 && i != stoppingPosition) {
              ~~~^~~~~~~~~~~~~~~~~~~~
ion/src/shared/unicode/utf8_helper.cpp:188:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (*i == c) {
             ~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp:198:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (i >= s && *i != stoppingCodePoint && i != stoppingPosition) {
                      ~~~^~~~~~~~~~~~~~~~~~~~
ion/src/shared/unicode/utf8_helper.cpp:199:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (*i == c) {
           ~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp: In function ‘bool UTF8Helper::PreviousCodePointIs(const char*, const char*, CodePoint)’:
ion/src/shared/unicode/utf8_helper.cpp:252:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     return *(location -1) == c;
            ~~~~~~~~~~~~~~~^~~~
ion/src/shared/unicode/utf8_helper.cpp: In function ‘bool UTF8Helper::CodePointIs(const char*, CodePoint)’:
ion/src/shared/unicode/utf8_helper.cpp:260:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     return *(location) == c;
            ~~~~~~~~~~~~^~~~
CC      ion/src/external/lz4/lz4.o
CC      liba/src/bridge.o
CXX     kandinsky/src/color.o
CXX     kandinsky/src/context.o
CXX     kandinsky/src/context_line.o
CXX     kandinsky/src/context_pixel.o
CXX     kandinsky/src/context_rect.o
CXX     kandinsky/src/context_text.o
CXX     kandinsky/src/font.o
CXX     kandinsky/src/framebuffer.o
CXX     kandinsky/src/framebuffer_context.o
CXX     kandinsky/src/ion_context.o
CXX     kandinsky/src/point.o
CXX     kandinsky/src/rect.o
CXX     kandinsky/fonts/LargeFont.o
CXX     kandinsky/fonts/SmallFont.o
CXX     apps/main.o
In file included from ./apps/tic_tac_toe/menu_controller.h:6:0,
                 from ./apps/tic_tac_toe/app.h:5,
                 from <command-line>:0:
./apps/tic_tac_toe/board_controller.h:21:15: error: ‘virtual int Tictactoe::BoardController::numberOfRows()’ marked ‘override’, but does not override
   virtual int numberOfRows() override;
               ^~~~~~~~~~~~
./apps/tic_tac_toe/board_controller.h:22:15: error: ‘virtual int Tictactoe::BoardController::numberOfColumns()’ marked ‘override’, but does not override
   virtual int numberOfColumns() override;
               ^~~~~~~~~~~~~~~
./apps/tic_tac_toe/board_controller.h:26:15: error: ‘virtual int Tictactoe::BoardController::reusableCellCount()’ marked ‘override’, but does not override
   virtual int reusableCellCount() override;
               ^~~~~~~~~~~~~~~~~
In file included from ./apps/tic_tac_toe/app.h:5:0,
                 from <command-line>:0:
./apps/tic_tac_toe/menu_controller.h:32:60: error: ‘k_bufferLength’ is not a member of ‘MessageTableCellWithEditableText’
   char m_draftTextBuffer[MessageTableCellWithEditableText::k_bufferLength];
                                                            ^~~~~~~~~~~~~~
./apps/tic_tac_toe/menu_controller.h:18:7: error: ‘int Tictactoe::MenuController::numberOfRows()’ marked ‘override’, but does not override
   int numberOfRows() override;
       ^~~~~~~~~~~~
./apps/tic_tac_toe/menu_controller.h:31:34: error: ‘Shared::TextFieldDelegateApp* Tictactoe::MenuController::textFieldDelegateApp()’ marked ‘override’, but does not override
   Shared::TextFieldDelegateApp * textFieldDelegateApp() override;
                                  ^~~~~~~~~~~~~~~~~~~~
./apps/tic_tac_toe/menu_controller.h:41:19: error: cannot declare field ‘Tictactoe::MenuController::m_boardController’ to be of abstract type ‘Tictactoe::BoardController’
   BoardController m_boardController;
                   ^~~~~~~~~~~~~~~~~
In file included from ./apps/tic_tac_toe/menu_controller.h:6:0,
                 from ./apps/tic_tac_toe/app.h:5,
                 from <command-line>:0:
./apps/tic_tac_toe/board_controller.h:10:7: note:   because the following virtual functions are pure within ‘Tictactoe::BoardController’:
 class BoardController : public ViewController, public SimpleTableViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate {
       ^~~~~~~~~~~~~~~
In file included from escher/include/escher/list_view_data_source.h:4:0,
                 from escher/include/escher.h:38,
                 from ./apps/tic_tac_toe/app.h:4,
                 from <command-line>:0:
escher/include/escher/table_view_data_source.h:9:15: note: 	virtual int TableViewDataSource::numberOfRows() const
   virtual int numberOfRows() const = 0;
               ^~~~~~~~~~~~
escher/include/escher/table_view_data_source.h:10:15: note: 	virtual int TableViewDataSource::numberOfColumns() const
   virtual int numberOfColumns() const = 0;
               ^~~~~~~~~~~~~~~
In file included from escher/include/escher.h:64:0,
                 from ./apps/tic_tac_toe/app.h:4,
                 from <command-line>:0:
escher/include/escher/simple_table_view_data_source.h:18:15: note: 	virtual int SimpleTableViewDataSource::reusableCellCount() const
   virtual int reusableCellCount() const = 0;
               ^~~~~~~~~~~~~~~~~
In file included from <command-line>:0:0:
./apps/tic_tac_toe/app.h:26:18: error: cannot declare field ‘Tictactoe::App::m_menuController’ to be of abstract type ‘Tictactoe::MenuController’
   MenuController m_menuController;
                  ^~~~~~~~~~~~~~~~
In file included from ./apps/tic_tac_toe/app.h:5:0,
                 from <command-line>:0:
./apps/tic_tac_toe/menu_controller.h:11:7: note:   because the following virtual functions are pure within ‘Tictactoe::MenuController’:
 class MenuController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource, public Shared::ParameterTextFieldDelegate {
       ^~~~~~~~~~~~~~
In file included from escher/include/escher/list_view_data_source.h:4:0,
                 from escher/include/escher.h:38,
                 from ./apps/tic_tac_toe/app.h:4,
                 from <command-line>:0:
escher/include/escher/table_view_data_source.h:9:15: note: 	virtual int TableViewDataSource::numberOfRows() const
   virtual int numberOfRows() const = 0;
               ^~~~~~~~~~~~
Makefile:188: recipe for target 'output/simulator/release/apps/main.o' failed
make: *** [output/simulator/release/apps/main.o] Error 1

Thank you !

Errors while 'make ...'

Fresh git clone from epsilon's github, then this github tried to make and this came up:

$ make PLATFORM=simulator EPSILON_APPS='tic_tac_toe settings' EPSILON_I18N='en fr'
CXX     apps/tic_tac_toe/menu_controller.o
apps/tic_tac_toe/menu_controller.cpp: In member function 'virtual void Tictactoe::MenuController::willDisplayCellForIndex(HighlightCell*, int)':
apps/tic_tac_toe/menu_controller.cpp:110:33: error: 'class Poincare::Integer' has no member named 'writeTextInBuffer'
       Integer(m_board->width()).writeTextInBuffer(buffer, 3);
                                 ^~~~~~~~~~~~~~~~~
apps/tic_tac_toe/menu_controller.cpp:114:34: error: 'class Poincare::Integer' has no member named 'writeTextInBuffer'
       Integer(m_board->height()).writeTextInBuffer(buffer, 3);
                                  ^~~~~~~~~~~~~~~~~
apps/tic_tac_toe/menu_controller.cpp:118:40: error: 'class Poincare::Integer' has no member named 'writeTextInBuffer'
       Integer(m_board->winCondition()).writeTextInBuffer(buffer, 3);
                                        ^~~~~~~~~~~~~~~~~
apps/tic_tac_toe/menu_controller.cpp:122:44: error: 'class Poincare::Integer' has no member named 'writeTextInBuffer'
       Integer(m_boardController.iaLevel()).writeTextInBuffer(buffer, 3);
                                            ^~~~~~~~~~~~~~~~~
apps/tic_tac_toe/menu_controller.cpp: In member function 'virtual bool Tictactoe::MenuController::textFieldDidFinishEditing(TextField*, const char*, Ion::Events::Event)':
apps/tic_tac_toe/menu_controller.cpp:134:80: error: no matching function for call to 'Poincare::Expression::approximateToScalar<float>(const char*&, Poincare::Context&)'
   float floatBody = Expression::approximateToScalar<float>(text, *globalContext);
                                                                                ^
In file included from poincare/include/poincare/layout_helper.h:4,
                 from poincare/include/poincare/ceiling_layout.h:5,
                 from poincare/include/poincare.h:10,
                 from escher/include/escher/highlight_cell.h:6,
                 from escher/include/escher/button.h:4,
                 from escher/include/escher.h:9,
                 from apps/tic_tac_toe/menu_controller.h:4,
                 from apps/tic_tac_toe/menu_controller.cpp:1:
poincare/include/poincare/expression.h:166:26: note: candidate: 'template<class U> U Poincare::Expression::approximateToScalar(Poincare::Context&, Poincare::Preferences::AngleUnit) const'
   template<typename U> U approximateToScalar(Context& context, Preferences::AngleUnit angleUnit) const;
                          ^~~~~~~~~~~~~~~~~~~
poincare/include/poincare/expression.h:166:26: note:   template argument deduction/substitution failed:
apps/tic_tac_toe/menu_controller.cpp:134:60: note:   cannot convert 'text' (type 'const char*') to type 'Poincare::Context&'
   float floatBody = Expression::approximateToScalar<float>(text, *globalContext);
                                                            ^~~~
In file included from poincare/include/poincare/layout_helper.h:4,
                 from poincare/include/poincare/ceiling_layout.h:5,
                 from poincare/include/poincare.h:10,
                 from escher/include/escher/highlight_cell.h:6,
                 from escher/include/escher/button.h:4,
                 from escher/include/escher.h:9,
                 from apps/tic_tac_toe/menu_controller.h:4,
                 from apps/tic_tac_toe/menu_controller.cpp:1:
poincare/include/poincare/expression.h:167:33: note: candidate: 'template<class U> static U Poincare::Expression::approximateToScalar(const char*, Poincare::Context&, Poincare::Preferences::AngleUnit)'
   template<typename U> static U approximateToScalar(const char * text, Context& context, Preferences::AngleUnit angleUnit);
                                 ^~~~~~~~~~~~~~~~~~~
poincare/include/poincare/expression.h:167:33: note:   template argument deduction/substitution failed:
apps/tic_tac_toe/menu_controller.cpp:134:80: note:   candidate expects 3 arguments, 2 provided
   float floatBody = Expression::approximateToScalar<float>(text, *globalContext);
                                                                                ^
make: *** [Makefile:67: apps/tic_tac_toe/menu_controller.o] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.