def test_board_remove_piece(self):
		board = Board(size = 2)
		origin = Position(0,0)
		foo = Foo()
		board.place_piece(origin, foo)
		self.assertEqual(board.remove_piece(origin), foo)
		self.assertIsNone(board.piece_at(origin))
	def test_board_adjacent_positions(self):
		board = Board(size = 3)
		expected_positions = [Position(1, 0),
		                      Position(0, 1),
		                      Position(2, 1),
		                      Position(1, 2)]
		actual_positions = [p for p in board.adjacent_positions(Position(1, 1))]
		self.assertItemsEqual(actual_positions, expected_positions)
	def test_board_is_valid_position(self):
		board = Board(size = 3)
		origin = Position(0, 0)
		center = Position(1, 1)
		bottom_right = Position(2, 2)
		self.assertTrue(board.is_valid_position(origin))
		self.assertTrue(board.is_valid_position(center))
		self.assertTrue(board.is_valid_position(bottom_right))
	def test_board_open_positions(self):
		board = Board(size = 2)
		board.place_piece(Position(0, 0), Foo())
		board.place_piece(Position(1, 1), Foo())
		expected_positions = [Position(0, 1),
		                      Position(1, 0)]
		actual_positions = [p for p in board.open_positions()]
		self.assertItemsEqual(actual_positions, expected_positions)
	def test_board_positions(self):
		board = Board(size = 2)
		expected_positions = [Position(0, 0), 
		                      Position(0, 1), 
		                      Position(1, 0), 
		                      Position(1, 1)]
		actual_positions = [p for p in board.positions()]
		self.assertItemsEqual(actual_positions, expected_positions)
	def test_board_place_piece_when_piece_present(self):
		board = Board(size = 2)
		origin = Position(0, 0)
		foo = Foo()
		foo2 = Foo()
		board.place_piece(origin, foo)
		with self.assertRaises(ValueError):
			board.place_piece(origin, foo2)
	def test_copy_of(self):
		board = Board(size = 3)
		board.place_piece(Position(0, 0), Foo())
		board.place_piece(Position(1, 1), Foo())
		board.place_piece(Position(2, 2), Foo())
		other_board = board.copy_of()
		self.assertFalse(other_board is board)
		self.assertEqual(board, other_board)
	def test_board_neq_diff_placing(self):
		board = Board(size = 2)
		board.place_piece(Position(0, 0), Foo())
		board.place_piece(Position(0, 1), Bar())
		other_board = Board(size = 3)
		other_board.place_piece(Position(0, 1), Foo())
		other_board.place_piece(Position(1, 1), Bar())
		self.assertNotEqual(board, other_board)
	def test_board_eq_same_pieces(self):
		board = Board(size = 2)
		board.place_piece(Position(0, 0), Foo())
		board.place_piece(Position(0, 1), Bar())
		other_board = Board(size = 2)
		other_board.place_piece(Position(0, 0), Foo())
		other_board.place_piece(Position(0, 1), Bar())
		self.assertEqual(board, other_board)
Esempio n. 10
0
def init(i_play_as):
    global fl1, fl2, game_board, old_move, bot
    fl1 = 'x'
    fl2 = 'o'
    game_board = Board()
    old_move = (-1, -1)
    bot = Player40()
    if i_play_as == 'o':
        temp_board_status = copy.deepcopy(game_board.board_status)
        temp_block_status = copy.deepcopy(game_board.block_status)

        try:
            bot_move = bot.move(game_board, old_move, fl2)
        except Exception:
            print traceback.format_exc()
            WINNER = 'HUMAN'
            MESSAGE = 'INVALID MOVE'
            return game_over((-1, -1), WINNER, MESSAGE)
        if (game_board.block_status != temp_block_status) or (
                game_board.board_status != temp_board_status):
            WINNER = 'HUMAN'
            MESSAGE = 'MODIFIED THE BOARD'
            return game_over(bot_move, WINNER, MESSAGE)
        if game_board.update(old_move, bot_move, fl2) == 'UNSUCCESSFUL':
            WINNER = 'HUMAN'
            MESSAGE = 'INVALID MOVE'
            return game_over(bot_move, WINNER, MESSAGE)

        old_move = bot_move
        game_board.print_board()

        return jsonify({
            'move':
            sermove(old_move),
            'valid':
            sermoves(game_board.find_valid_move_cells(old_move))
        })
    return "yay"
	def test_board_eq_same_board(self):
		board = Board(size = 2)
		board.place_piece(Position(0, 0), Foo())
		self.assertEqual(board, board)
	def test_boad_is_valid_position_out_of_bounds(self):
		board = Board(size = 3)
		oob_top_left = Position(-1, -1)
		oob_bottom_right = Position(3, 3)
		self.assertFalse(board.is_valid_position(oob_top_left))
		self.assertFalse(board.is_valid_position(oob_bottom_right))
	def test_board_place_piece(self):
		board = Board(size = 2)
		origin = Position(0, 0)
		foo = Foo()
		board.place_piece(position = origin, piece = foo)
		self.assertEqual(board.piece_at(origin), foo)
	def test_board_creation(self):
		board = Board(size = 2)
		self.assertEqual(board.size(), 2)
		positions = [Position(0, 0), Position(0, 1), Position(1, 0), Position(0, 0)]
		for p in positions:
			self.assertIsNone(board.piece_at(p))
	def test_board_piece_at(self):
		board = Board(size = 2)
		foo = Foo()
		board._board[0] = foo
		self.assertEqual(board.piece_at(Position(0, 0)), foo)
from simulator import Game, Board, Agent

if __name__ == "__main__":
    # Points & Tiled
    points = [[-1, 4, 3, 5, 9, 5, 3, 4, -1], [5, 3, 8, -10, 2, -10, 8, 3, 5],
              [6, 3, 7, 8, 0, 8, 7, 4, 6], [5, 3, 8, -10, 2, -10, 8, 3, 5],
              [-1, 4, 3, 5, 9, 5, 3, 4, -1]]
    tiled = [[0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0],
             [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 2, 0, 0, 0, 0],
             [0, 0, 2, 0, 0, 0, 2, 0, 0]]

    # Board(width, height, points, tiled)
    board = Board(9, 5, points, tiled)

    # Agent(TeamID, AgentID, x, y)
    ## Note : The coordinate value is 0 standard
    ## Note : AgentID must be unique value!!
    agents = [
        Agent(1, 1, 2, 0),
        Agent(1, 2, 6, 0),
        Agent(1, 3, 4, 1),
        Agent(2, 4, 2, 4),
        Agent(2, 5, 6, 4),
        Agent(2, 6, 4, 3)
    ]

    # Game(board, agents)
    game = Game(board, agents)

    # GAME.set_action(TeamID, AgentID, dx, dy, remove_panel(default: False))
    game.set_action(1, 1, 1, 1)