diff options
author | Stephen Enders <smenders@gmail.com> | 2022-02-12 12:31:27 -0500 |
---|---|---|
committer | Stephen Enders <smenders@gmail.com> | 2022-02-12 12:31:27 -0500 |
commit | 88c364d3bbcc5c3ea78abb7051c161eb87c00bb3 (patch) | |
tree | f15ddad81a8e146e14bfc4900ba5f995ef7734d8 /src/helper.cpp | |
parent | 66a34966ca14bc5158b244ddded2a1d80fe8cc88 (diff) |
Create win sequence
You can now win the game when you reach a score of 7
This is proxied simply by "does the player have any remaining pieces to
play".
Diffstat (limited to 'src/helper.cpp')
-rw-r--r-- | src/helper.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/helper.cpp b/src/helper.cpp index d0a349a..3d44bc6 100644 --- a/src/helper.cpp +++ b/src/helper.cpp @@ -240,6 +240,22 @@ createPassSprites(std::shared_ptr<std::vector<sf::Texture>> textures) } std::shared_ptr<std::vector<sf::Sprite>> +createWinSprites(int player_id, + std::shared_ptr<std::vector<sf::Texture>> textures) +{ + auto sprites = std::make_shared<std::vector<sf::Sprite>>(); + auto tile_ids = player_id == P1_ID ? P1_WIN_TILES : P2_WIN_TILES; + auto x = 4; + auto y = 4; + for (int i = 0; i < 5; i++) { + auto s = sf::Sprite((*textures)[tile_ids[i]]); + s.setPosition(pos(x + i, y)); + sprites->push_back(s); + } + return sprites; +} + +std::shared_ptr<std::vector<sf::Sprite>> createStartSprites(std::shared_ptr<std::vector<sf::Texture>> textures) { auto sprites = std::make_shared<std::vector<sf::Sprite>>(); @@ -397,3 +413,9 @@ clearPiece(std::shared_ptr<std::vector<struct piece_t>> pieces, } } } + +bool +hasWon(std::shared_ptr<struct player_t> player) +{ + return player->pieces->size() == 0; +} |