52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
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
|