class BestMove
Attributes
moves[RW]
value[RW]
Public Class Methods
new(game_board, my_player_value)
click to toggle source
# File lib/minimax_computer.rb, line 87 def initialize(game_board, my_player_value) @moves = [] @value = nil @game_board, @my_player_value = game_board, my_player_value end
Public Instance Methods
add_better_move(path_score, move)
click to toggle source
# File lib/minimax_computer.rb, line 97 def add_better_move(path_score, move) if better_or_equal_move?(path_score) @moves.clear and @value = path_score if path_score != @value @moves << move end end
better_or_equal_move?(path_score)
click to toggle source
# File lib/minimax_computer.rb, line 104 def better_or_equal_move?(path_score) (@value.nil?) or (path_score >= @value && @game_board.player_value == @my_player_value) or (path_score <= @value && @game_board.player_value != @my_player_value) end
get_random_move()
click to toggle source
# File lib/minimax_computer.rb, line 93 def get_random_move @moves[rand(@moves.size)] end