internal override IReward GetReward(int?previousStateToken, int transitionValue) { var game = new TicTacToeGame(previousStateToken, transitionValue); IReward rwd = null; if (game.IsBlock) { rwd = new TicTacToeReward() { Discount = .5, Value = 95, IsAbsorbing = false, StateToken = game.StateToken }; } if (game.IsWin) { rwd = new TicTacToeReward() { Discount = .9, Value = 100, IsAbsorbing = true, StateToken = game.StateToken }; } if (game.IsTie) { rwd = new TicTacToeReward() { Discount = .9, Value = 50, IsAbsorbing = true, StateToken = game.StateToken }; } return(rwd); }
internal override IReward GetReward(int? previousStateToken, int transitionValue) { var game = new TicTacToeGame(previousStateToken, transitionValue); IReward rwd = null; if (game.IsBlock) { rwd = new TicTacToeReward() { Discount = .5, Value = 95, IsAbsorbing = false, StateToken = game.StateToken }; } if (game.IsWin) { rwd = new TicTacToeReward() { Discount = .9, Value = 100, IsAbsorbing = true, StateToken = game.StateToken }; } if (game.IsTie) { rwd = new TicTacToeReward() { Discount = .9, Value = 50, IsAbsorbing = true, StateToken = game.StateToken }; } return rwd; }