1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | module Fork PAWN = 0 KNIGHT = 1 BISHOP = 2 ROOK = 3 QUEEN = 4 KING = 5 TYPES = [PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING] WHITE = 0 BLACK = 1 DRAW = 2 SIDES = [WHITE, BLACK] def self.enemy(side) side == BLACK ? WHITE : BLACK end struct Piece getter type : Int32 getter side : Int32 getter index : Int32 def initialize(@type, @side, @index) end def to_c c = '?' case @type when PAWN c = 'p' when KNIGHT c = 'n' when BISHOP c = 'b' when ROOK c = 'r' when QUEEN c = 'q' when KING c = 'k' end c = c.upcase if @side == WHITE c end end end |