コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
 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()
コード例 #4
0
 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)
コード例 #5
0
ファイル: main.py プロジェクト: MeeedAmine/othello-game
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()