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