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()
Beispiel #2
0
 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
Beispiel #3
0
    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")
Beispiel #4
0
 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()
Beispiel #5
0
    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)