示例#1
0
 def test_move_2(self):
     game = Game('pc2,Ke1,ke8', BLACK)
     self.assertEqual(str(game.board.getFigure(BLACK, PAWN)), 'pc2')
     with self.assertRaises(errors.NotFoundError):
         game.board.getFigure(BLACK, QUEEN)
     game.move(BLACK, (3, 2), (3, 1))
     self.assertEqual(str(game.board), 'Ke1,ke8,qc1')
     self.assertEqual(str(game.board.getFigure(BLACK, QUEEN)), 'qc1')
     with self.assertRaises(errors.NotFoundError):
         game.board.getFigure(BLACK, PAWN)
示例#2
0
 def test_move_1(self):
     game = Game('Pc7,Ke1,ke8')
     self.assertEqual(str(game.board.getFigure(WHITE, PAWN)), 'Pc7')
     with self.assertRaises(errors.NotFoundError):
         game.board.getFigure(WHITE, QUEEN)
     game.move(WHITE, (3, 7), (3, 8))
     self.assertEqual(str(game.board), 'Ke1,ke8,Qc8')
     self.assertEqual(str(game.board.getFigure(WHITE, QUEEN)), 'Qc8')
     with self.assertRaises(errors.NotFoundError):
         game.board.getFigure(WHITE, PAWN)
示例#3
0
 def test_full_game(self):
     moves = [
         'e2-e4', 'e7-e5', 'g1-f3', 'b8-c6', 'f1-c4', 'c6-d4', 'f3-e5',
         'd8-g5', 'e5-f7', 'g5-g2', 'h1-f1', 'g2-e4', 'c4-e2', 'd4-f3',
         'e2-f3', 'e4-e1'
     ]
     game = Game()
     with self.assertRaises(errors.BlackWon):
         for move in moves:
             positions = map(coors2pos, move.split('-'))
             game.move(game.current_player, *positions)
     expect = [
         'Pa2', 'Pb2', 'Pc2', 'Pd2', 'Pf2', 'Ph2', 'Ra1', 'Rf1', 'Nb1',
         'Nf7', 'Bc1', 'Bf3', 'Qd1', 'pa7', 'pb7', 'pc7', 'pd7', 'pg7',
         'ph7', 'ra8', 'rh8', 'ng8', 'bc8', 'bf8', 'qe1', 'ke8'
     ]
     self.assertEqual(str(game.board), ','.join(expect))
     expect = [(PAWN, BLACK), (PAWN, BLACK), (PAWN, WHITE), (PAWN, WHITE),
               (KNIGHT, BLACK), (KING, WHITE)]
     self.assertEqual(game.board.cuts, expect)
示例#4
0
 def test_move(self):
     game = Game('Kf3,Pe2,ke8,qf7')
     self.assertEqual(game.current_player, WHITE)
     with self.assertRaises(errors.WrongTurnError):
         game.move(BLACK, (5, 4), (5, 5))
     with self.assertRaises(errors.NotFoundError):
         game.move(WHITE, (5, 4), (5, 5))
     with self.assertRaises(errors.WrongFigureError):
         game.move(WHITE, (5, 8), (5, 7))
     with self.assertRaises(errors.WrongMoveError):
         game.move(WHITE, (5, 2), (5, 5))
     fig, move = game.move(WHITE, (5, 2), (5, 4))
     self.assertIsInstance(fig, Pawn)
     self.assertEqual(move, 'e2-e4')
     self.assertEqual(game.current_player, BLACK)
     with self.assertRaises(errors.BlackWon) as cm:
         game.move(BLACK, (6, 7), (6, 3))
     self.assertIsInstance(cm.exception.figure, Queen)
     self.assertEqual(cm.exception.move, 'f7-f3')
     self.assertEqual(str(game.board.lastCut), 'Kf3')
     game = Game('Ke1,Rh1,ke8')
     fig, move = game.move(WHITE, (5, 1), (7, 1))
     self.assertIsInstance(fig, King)
     self.assertEqual(move, '0-0')
     self.assertEqual(game.current_player, BLACK)