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);
|
updatedPosition(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
new_defeated_players.push_back(tt);
|
||||||
|
players[tt].is_defeated = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GameBoard::isTeammate(Player x, Player y) const {
|
bool GameBoard::isTeammate(Player x, Player y) const {
|
||||||
@ -105,6 +107,10 @@ Team GameBoard::teamOf(Player x) const {
|
|||||||
return players[x].team;
|
return players[x].team;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GameBoard::isDefeated(Player x) const {
|
||||||
|
return players[x].is_defeated;
|
||||||
|
}
|
||||||
|
|
||||||
std::uint8_t GameBoard::numPlayers() const {
|
std::uint8_t GameBoard::numPlayers() const {
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
@ -117,10 +123,10 @@ std::vector<TeamRanking> GameBoard::leaderboard() const {
|
|||||||
std::vector<TeamRanking> res(t);
|
std::vector<TeamRanking> res(t);
|
||||||
std::vector<PlayerRanking> prank(n);
|
std::vector<PlayerRanking> prank(n);
|
||||||
|
|
||||||
for (Player i = 1; i <= n; ++i)
|
for (Player i = 1; i <= n; ++i) {
|
||||||
prank[i - 1].player = i,
|
prank[i - 1].player = i;
|
||||||
prank[i - 1].is_defeated
|
prank[i - 1].is_defeated = players[i].is_defeated;
|
||||||
= defeated_players.find(i) != defeated_players.end();
|
}
|
||||||
|
|
||||||
for (Team i = 1; i <= t; ++i)
|
for (Team i = 1; i <= t; ++i)
|
||||||
res[i - 1].team = i;
|
res[i - 1].team = i;
|
||||||
|
@ -50,7 +50,7 @@ private:
|
|||||||
pos_t w, h;
|
pos_t w, h;
|
||||||
std::vector<Tile> board;
|
std::vector<Tile> board;
|
||||||
std::set<Point> updated_tiles;
|
std::set<Point> updated_tiles;
|
||||||
std::set<Player> defeated_players;
|
std::vector<Player> new_defeated_players;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user