class Checkers::AI::Node
Attributes
board[R]
children[R]
player[R]
score[RW]
Public Class Methods
new(board, player, depth = 0)
click to toggle source
# File lib/checkers/ai/node.rb, line 9 def initialize(board, player, depth = 0) @board = board @player = player @score = board.calculate_score(player: player) @children = generate_children(depth) end
Public Instance Methods
children_size()
click to toggle source
# File lib/checkers/ai/node.rb, line 16 def children_size @children.size end
Private Instance Methods
generate_children(depth)
click to toggle source
# File lib/checkers/ai/node.rb, line 22 def generate_children(depth) return [] if depth.zero? plays_next = player == :human ? :ai : :human boards = Board.generate_boards(board, player) boards.map { |board| Node.new(board, plays_next, depth - 1) } end