def init_game(self, nombre, con_jugadas_posibles=True, nivel=Ai.FACIL): parser = Parser() archivo_juegos = open(os.path.abspath(self.__path_archivo_juegos)) elementos = parser.find_child_element("game_" + str(nombre), archivo_juegos) fichas_iniciales = [] if len(elementos) <= 0: raise Exception("No se encontraron elementos para el juego: " + nombre + " en el archivo xml: " + self.__path_archivo_juegos) for e in elementos: if e.get_name() == 'features': board_dim = int(e.get_attribute('board')) if e.get_attribute('oponent') == "virtual": #Es un juego de mesh contra Humano jugador1 = Player(BLANCO, HUMANO) jugador2 = Player(NEGRO, VIRTUAL) else: #Es un juego contra la PC if e.get_attribute('white') == "user": jugador1 = Player(BLANCO, HUMANO) jugador2 = Player(NEGRO, PC) else: jugador1 = Player(BLANCO, PC) jugador2 = Player(NEGRO, HUMANO) if e.get_attribute('initiator') == "white": comienza = BLANCO else: comienza = NEGRO elif e.get_name() == 'piece': ficha = {} if e.get_attribute('color') == "black": ficha["color"] = NEGRO else: ficha["color"] = BLANCO ficha["posicion"] = (int(e.get_attribute('pos_f')), int(e.get_attribute('pos_c'))) fichas_iniciales.append(ficha) tablero_logico = Board(board_dim) if nombre == "tutorial1": tablero_logico.save_initial_configuration(fichas_iniciales) else: tablero_logico.set_up(fichas_iniciales) self.__video.create_graphic_board(tablero_logico) self.juego = Game(self.__video.board, jugador1, jugador2, con_jugadas_posibles, nivel, write_path=self.__write_path) if comienza == BLANCO: self.juego.set_turn(jugador1) else: self.juego.set_turn(jugador2) self.juego.increase_turn_number() if nombre == "mesh": self.juego.set_mesh_game(True) self.__usuario.set_player(jugador1) parser.close() archivo_juegos.close()
def __init__(self, battle_order="BLACK"): self.board = Board() self.players = None self.battle_order = battle_order self.turn = 0 self.winner = None # TODO self.game_record = None
def test_initial_board(self): board = Board() self.assertEqual(len(board.positions), 8) self.assertEqual(len(board.positions[0]), 8) self.assertEqual(board.positions[3][3], "l") self.assertEqual(board.positions[3][4], "d") self.assertEqual(board.positions[4][3], "d") self.assertEqual(board.positions[4][4], "l")
def __init__(self, window, difficulty_level, player_name, game_mode): self.window = window self.difficulty_level = difficulty_level self.game_mode = game_mode self.board = Board() self.board.draw(window) self.end_game = False self.player = BLACK self.possible_moves = self.get_possible_moves(self.board) self.black_pieces, self.white_pieces = self.board.count_pieces() self.status = Status(window, self.black_pieces, self.white_pieces, player_name) self.last_cord = [None, None] self.update()
def test_print_board(self): board = Board() with patch("sys.stdout", new=StringIO()) as fakeOutput: board.print() formatted_board = (" | | | | | | | \n" + "_ _ _ _ _ _ _ _\n" + " | | | | | | | \n" + "_ _ _ _ _ _ _ _\n" + " | | | | | | | \n" + "_ _ _ _ _ _ _ _\n" + " | | |l|d| | | \n" + "_ _ _ _ _ _ _ _\n" + " | | |d|l| | | \n" + "_ _ _ _ _ _ _ _\n" + " | | | | | | | \n" + "_ _ _ _ _ _ _ _\n" + " | | | | | | | \n" + "_ _ _ _ _ _ _ _\n" + " | | | | | | |") self.assertEqual(fakeOutput.getvalue().rstrip(), formatted_board)
def setup_game(self, config, nombre=""): tablero_logico = Board(config["tablero"]["dimension"]) tablero_logico.set_casillas(config["tablero"]["configuracion"]) tablero_logico.update_pieces_counters() self.__video.create_graphic_board(tablero_logico) jugador1 = Player(config["jugadores"][0]["color"], VIRTUAL) jugador2 = Player(config["jugadores"][1]["color"], HUMANO) self.juego = Game(self.__video.board, jugador1, jugador2, write_path=self.__write_path) self.juego.set_turn(jugador1) self.juego.increase_turn_number() if nombre == "mesh": self.juego.set_mesh_game(True) self.__usuario.set_player(jugador2)