1 module ShogiServer # for a namespace
46 return [piece, player]
69 s.downcase! if !piece.sente
76 def parseBoard(word, board)
79 while (i < word.length)
83 piece, player = charToPiece(c)
84 piece.new(board, x, y, player)
88 piece, player = charToPiece(cc)
89 piece.new(board, x, y, player, true)
106 return "" if hands.empty?
109 mapping = [[ShogiServer::PieceHI, "R"],
110 [ShogiServer::PieceKA, "B"],
111 [ShogiServer::PieceKI, "G"],
112 [ShogiServer::PieceGI, "S"],
113 [ShogiServer::PieceKE, "N"],
114 [ShogiServer::PieceKY, "L"],
115 [ShogiServer::PieceFU, "P"]]
117 mapping.each do |klass, str|
118 pieces = hands.find_all {|piece| piece.class == klass}
121 s += "%d" % [pieces.size]
129 # "lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b -"
131 def board2usi(board, turn)
136 piece = board.array[x][y]
140 when ShogiServer::Piece
145 s += piece2char(piece)
160 if board.sente_hands.empty? && board.gote_hands.empty?
163 s += hands2usi(board.sente_hands).upcase
164 s += hands2usi(board.gote_hands).downcase