Class: RubyTictactoe::AI

Inherits:
Object
  • Object
show all
Defined in:
lib/ai.rb

Constant Summary collapse

POS_INF =
999
NEG_INF =
-999
WIN =
1
LOSE =
-1
TIE =
0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(player) ⇒ AI

Returns a new instance of AI.



10
11
12
# File 'lib/ai.rb', line 10

def initialize(player)
  @current_player = player
end

Instance Attribute Details

#current_playerObject (readonly)

Returns the value of attribute current_player.



9
10
11
# File 'lib/ai.rb', line 9

def current_player
  @current_player
end

Instance Method Details

#computer_move(board, player) ⇒ Object



14
15
16
17
18
# File 'lib/ai.rb', line 14

def computer_move(board, player)
  test_board = board.dup
  test_board.all_cells = board.all_cells.dup
  get_best_move(test_board, player)
end

#get_best_move(board, player) ⇒ Object



20
21
22
23
24
# File 'lib/ai.rb', line 20

def get_best_move(board, player)
  ranked_moves = rank_possible_moves(board, player)
  move = ranked_moves.max_by {|cell, score| score}
  move.first
end