import random from fh_sdk import Direction, FairHopper, Position import math HOST = "http://localhost" PORT = 8010 def calc_angle(position1: Position, position2: Position) -> float: x1, y1 = position1.x, position1.y x2, y2 = position2.x, position2.y return math.atan2(y2 - y1, x2 - x1) * (180 / math.pi) fh = FairHopper(host=HOST, port=PORT) res = fh.ping() game = fh.start_game(player_name=f"Mirko {random.randint(0, 9999)}") print(game.player.position) quit() res = fh.get_game_info() print(">>>>>", res) res = fh.get_player_info("XX") print(">>>>>", res) position = game.player.position dest_position = game.destination.position # p1 = PositionDto(x=0, y=20) # p2 = PositionDto(x=10, y=10) # angle = calc_angle(p1, p2) # print(angle) # quit() for _ in range(10): angle = calc_angle(position, dest_position) + 180 if 0 <= angle < 90: direction = Direction.RIGHT elif 90 <= angle <= 180: direction = Direction.DOWN elif 180 <= angle <= 270: direction = Direction.RIGHT else: direction = Direction.UP print(position, dest_position, int(angle), direction) move_response = fh.move(game.player.id, direction) position = move_response.player.position