class Board
Constants
- BackRow
Attributes
board[RW]
en_passent[RW]
Public Class Methods
board_safe(points)
click to toggle source
# File lib/board.rb, line 61 def self.board_safe(points) points.select do |point| not(point.any? {|cord| cord < 0 or cord > 7}) end end
new(flag = false)
click to toggle source
# File lib/board.rb, line 6 def initialize(flag = false) @board = [] 8.times do |y| row = [] 8.times {|x| row << EmptySpace.new(x,y)} @board << row end unless flag pieces = [] 8.times do |x| pieces << BlackPawn.new(x,6) << WhitePawn.new(x,1) end [0,7].each do |x| pieces << BlackRook.new(x,7) << WhiteRook.new(x,0) end [1,6].each do |x| pieces << BlackKnight.new(x,7) << WhiteKnight.new(x,0) end [2,5].each do |x| pieces << BlackBishop.new(x,7) << WhiteBishop.new(x,0) end pieces << BlackQueen.new(4,7) << WhiteQueen.new(4,0) pieces << BlackKing.new(3,7) << WhiteKing.new(3,0) pieces.each {|piece| place(piece)} end @en_passent = NullSpace.new end
Public Instance Methods
at(x,y)
click to toggle source
# File lib/board.rb, line 49 def at(x,y) board[y][x] end
enemies(piece)
click to toggle source
# File lib/board.rb, line 53 def enemies(piece) board.flatten.select {|other| other.enemy_of?(piece)} end
move(piece, x, y)
click to toggle source
# File lib/board.rb, line 57 def move(piece, x, y) piece.move(self, x, y) end
place(piece)
click to toggle source
# File lib/board.rb, line 41 def place(piece) piece.place_on(self) end
remove(piece)
click to toggle source
# File lib/board.rb, line 45 def remove(piece) piece.remove_from(self) end
to_s()
click to toggle source
# File lib/board.rb, line 67 def to_s out = "\s\s" out << (0..7).to_a.join(' ') << "\n" @board.each_with_index do |row, i| out << "#{i} " << (row.collect{|pc| pc.to_s}).join('') << "\n" end out end