add player info methods of GameBoard
Signed-off-by: szdytom <szdytom@qq.com>
This commit is contained in:
parent
a3d235b10b
commit
4046abd656
@ -62,22 +62,56 @@ void GameBoard::capitalCaptured(Player tt, Player sc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool GameBoard::isTeammate(Player x, Player y) const {
|
bool GameBoard::isTeammate(Player x, Player y) const {
|
||||||
// TODO
|
return teamOf(x) == teamOf(y);
|
||||||
}
|
|
||||||
|
|
||||||
PlayerState::PlayerState() {
|
|
||||||
is_defeated = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameBoard::turnUpdate() {
|
void GameBoard::turnUpdate() {
|
||||||
// TODO
|
for (pos_t x = 0; x < h; ++x) {
|
||||||
|
for (pos_t y = 0; y < w; ++y) {
|
||||||
|
auto &tile = at(x, y);
|
||||||
|
if (tile.owner == neutral_player)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (tile.type == TileType::Stronghold || tile.type == TileType::Capital)
|
||||||
|
tile.unit += 1;
|
||||||
|
|
||||||
|
if (tile.type == TileType::Swamp) {
|
||||||
|
tile.unit -= 1;
|
||||||
|
if (tile.unit == 0)
|
||||||
|
tile.owner = neutral_player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameBoard::roundUpdate() {
|
void GameBoard::roundUpdate() {
|
||||||
// TODO
|
for (pos_t x = 0; x < h; ++x) {
|
||||||
|
for (pos_t y = 0; y < w; ++y) {
|
||||||
|
auto &tile = at(x, y);
|
||||||
|
if (tile.owner == neutral_player)
|
||||||
|
continue;
|
||||||
|
tile.unit += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameBoard::updatedPosition(pos_t x, pos_t y) {
|
void GameBoard::updatedPosition(pos_t x, pos_t y) {
|
||||||
updated_tiles.emplace(x, y);
|
updated_tiles.emplace(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Team GameBoard::teamOf(Player x) const {
|
||||||
|
return players[x].team;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::uint8_t GameBoard::numPlayers() const {
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::uint8_t GameBoard::numTeams() const {
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerState::PlayerState() {
|
||||||
|
is_defeated = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -30,6 +30,9 @@ public:
|
|||||||
void turnUpdate();
|
void turnUpdate();
|
||||||
void roundUpdate();
|
void roundUpdate();
|
||||||
bool isTeammate(Player x, Player y) const;
|
bool isTeammate(Player x, Player y) const;
|
||||||
|
Team teamOf(Player x) const;
|
||||||
|
std::uint8_t numPlayers() const;
|
||||||
|
std::uint8_t numTeams() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void capitalCaptured(Player target, Player source);
|
void capitalCaptured(Player target, Player source);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user