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
This commit is contained in:
34
src/displayapp/screens/Twos.h
Normal file
34
src/displayapp/screens/Twos.h
Normal file
@@ -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();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user