fix some bugs
This commit is contained in:
parent
58952deb1d
commit
b6b2e3142e
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user