class RubyGo::Moves
Attributes
capture_count[R]
internal_moves[R]
pass_count[R]
Public Class Methods
new()
click to toggle source
# File lib/ruby-go/moves.rb, line 5 def initialize @internal_moves = [] @pass_count = 0 @capture_count = { black: 0, white: 0 } end
Public Instance Methods
capture(stone)
click to toggle source
# File lib/ruby-go/moves.rb, line 45 def capture(stone) current.captures << stone capture_count[stone.color] += 1 end
current()
click to toggle source
# File lib/ruby-go/moves.rb, line 29 def current internal_moves[-1] end
each(&block)
click to toggle source
# File lib/ruby-go/moves.rb, line 21 def each(&block) internal_moves.each(&block) end
pass(pass)
click to toggle source
# File lib/ruby-go/moves.rb, line 16 def pass(pass) @pass_count += 1 internal_moves << Move.new(pass) end
play(played)
click to toggle source
# File lib/ruby-go/moves.rb, line 11 def play(played) @pass_count += 0 internal_moves << Move.new(played) end
pop()
click to toggle source
# File lib/ruby-go/moves.rb, line 33 def pop move = internal_moves.pop move.captures.each do |stone| capture_count[stone.color] -= 1 end @pass_count -= 1 if move.empty? move end
prev()
click to toggle source
# File lib/ruby-go/moves.rb, line 25 def prev internal_moves[-2] end