diff options
| author | Jed <jed@mijar.es> | 2021-01-02 20:08:12 (GMT) |
|---|---|---|
| committer | Jed <jed@mijar.es> | 2021-01-02 20:15:12 (GMT) |
| commit | 12617ed1bf0738970c1ccf32d0b523e6d5999531 (patch) | |
| tree | fe2d90d5495906266bff927516b5284627e66444 /src/displayapp/screens/Twos.h | |
| parent | b4fb8897ac97e5ee6299842dac0384ce585743bb (diff) | |
adds 2048 clone game
styles table
reads touch events
allows moving tiles
allows merging tiles
improves tile movement
allows merging tiles
adds score display
implements color
edit comments
adjust game logic
disallows double merges
Diffstat (limited to 'src/displayapp/screens/Twos.h')
| -rw-r--r-- | src/displayapp/screens/Twos.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/displayapp/screens/Twos.h b/src/displayapp/screens/Twos.h new file mode 100644 index 0000000..ad80ca1 --- /dev/null +++ b/src/displayapp/screens/Twos.h @@ -0,0 +1,34 @@ +#pragma once + +#include <lvgl/src/lv_core/lv_obj.h> +#include "Screen.h" + +namespace Pinetime { + namespace Applications { + struct Tile { + bool merged = false; + unsigned int value = 0; + }; + namespace Screens { + class Twos : public Screen { + public: + Twos(DisplayApp* app); + ~Twos() override; + bool Refresh() override; + bool OnButtonPushed() override; + bool OnTouchEvent(TouchEvents event) override; + + private: + bool running = true; + lv_obj_t *scoreText; + lv_obj_t *gridDisplay; + Tile grid[4][4]; + unsigned int score = 0; + void updateGridDisplay(Tile grid[][4]); + bool tryMerge(Tile grid[][4], int &newRow, int &newCol, int oldRow, int oldCol); + bool tryMove(Tile grid[][4], int newRow, int newCol, int oldRow, int oldCol); + bool placeNewTile(); + }; + } + } +}
\ No newline at end of file |
