def test_get_user_move(self, input): with patch("sys.stdout", new=StringIO()) as fakeOutput: Game() dark_player_turn = "Dark player chose 3c" self.assertEqual(fakeOutput.getvalue().rstrip(), dark_player_prompt)
def test_initial_game(self): with patch("sys.stdout", new=StringIO()) as fakeOutput: Game() dark_player_prompt = "Dark player turn ..." self.assertEqual(fakeOutput.getvalue().rstrip(), dark_player_prompt)
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 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)
def main(): WINDOW = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('Othello Game') run = True clock = pygame.time.Clock() game = Game(WINDOW, difficulty_level, name, player_mode) while run: clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.MOUSEBUTTONDOWN: pos = pygame.mouse.get_pos() row, col = get_row_col_mouse(pos) game.play(row, col) game.update() pygame.quit()