fix some bugs

This commit is contained in:
lcw 2024-02-10 23:50:30 +08:00
parent 58952deb1d
commit b6b2e3142e
2 changed files with 11 additions and 5 deletions

View File

@ -60,6 +60,8 @@ void GameBoard::capitalCaptured(Player tt, Player sc) {
updatedPosition(x, y);
}
}
new_defeated_players.push_back(tt);
players[tt].is_defeated = 1;
}
bool GameBoard::isTeammate(Player x, Player y) const {
@ -105,6 +107,10 @@ Team GameBoard::teamOf(Player x) const {
return players[x].team;
}
bool GameBoard::isDefeated(Player x) const {
return players[x].is_defeated;
}
std::uint8_t GameBoard::numPlayers() const {
return n;
}
@ -117,10 +123,10 @@ std::vector<TeamRanking> GameBoard::leaderboard() const {
std::vector<TeamRanking> res(t);
std::vector<PlayerRanking> prank(n);
for (Player i = 1; i <= n; ++i)
prank[i - 1].player = i,
prank[i - 1].is_defeated
= defeated_players.find(i) != defeated_players.end();
for (Player i = 1; i <= n; ++i) {
prank[i - 1].player = i;
prank[i - 1].is_defeated = players[i].is_defeated;
}
for (Team i = 1; i <= t; ++i)
res[i - 1].team = i;

View File

@ -50,7 +50,7 @@ private:
pos_t w, h;
std::vector<Tile> board;
std::set<Point> updated_tiles;
std::set<Player> defeated_players;
std::vector<Player> new_defeated_players;
};
#endif