| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #pragma once
- #include <furi.h>
- class RenderBuffer;
- enum CardValue {
- NONE = -1,
- TWO = 0,
- THREE = 1,
- FOUR = 2,
- FIVE = 3,
- SIX = 4,
- SEVEN = 5,
- EIGHT = 6,
- NINE = 7,
- TEN = 8,
- JACK = 9,
- QUEEN = 10,
- KING = 11,
- ACE = 12,
- };
- struct Card {
- uint8_t suit = 0;
- CardValue value = NONE;
- bool exposed = false;
- Card(uint8_t s, uint8_t v) : suit(s), value((CardValue) v) {}
- void Render(uint8_t x, uint8_t y, bool selected, RenderBuffer *buffer, uint8_t size_limit = 22);
- static void RenderEmptyCard(uint8_t x, uint8_t y, RenderBuffer *buffer);
- static void RenderBack(uint8_t x, uint8_t y, bool selected, RenderBuffer *buffer, uint8_t size_limit= 22);
- static void TryRender(Card *c, uint8_t x, uint8_t y, bool selected, RenderBuffer *buffer, uint8_t size_limit= 22);
- bool CanPlaceFoundation(Card *where);
- bool CanPlaceColumn(Card *where);
- void print();
- };
|