GameState::reward_for_player is no longer a trait function
We need GameState::rewards_for_players implemented, the library currently doesn't need to specify for a singular player.
This commit is contained in:
+13
-13
@@ -125,6 +125,19 @@ impl TicTacToe {
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
fn reward_for_player(&self, player: &Player) -> RewardVal {
|
||||
if let Some(winner) = self.get_winner() {
|
||||
if winner == *player {
|
||||
return 1.0; // Win
|
||||
} else {
|
||||
return 0.0; // Loss
|
||||
}
|
||||
}
|
||||
|
||||
// Draw
|
||||
0.5
|
||||
}
|
||||
}
|
||||
|
||||
impl GameState for TicTacToe {
|
||||
@@ -161,19 +174,6 @@ impl GameState for TicTacToe {
|
||||
self.get_winner().is_some() || self.moves_played == 9
|
||||
}
|
||||
|
||||
fn reward_for_player(&self, player: &Self::Player) -> RewardVal {
|
||||
if let Some(winner) = self.get_winner() {
|
||||
if winner == *player {
|
||||
return 1.0; // Win
|
||||
} else {
|
||||
return 0.0; // Loss
|
||||
}
|
||||
}
|
||||
|
||||
// Draw
|
||||
0.5
|
||||
}
|
||||
|
||||
fn rewards_for_players(&self) -> HashMap<Self::Player, RewardVal> {
|
||||
HashMap::from_iter(vec![
|
||||
(Player::X, self.reward_for_player(&Player::X)),
|
||||
|
||||
Reference in New Issue
Block a user