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