Python SDK demo

This commit is contained in:
Eden Kirin
2023-03-27 13:33:23 +02:00
parent cf0605c83c
commit 5e8981953f
3 changed files with 66 additions and 9 deletions

View File

@ -5,37 +5,42 @@ const FAIRHOPPER_PORT = 8010;
async function main() { async function main() {
const fh = new sdk.FairHopper(FAIRHOPPER_HOST, FAIRHOPPER_PORT); const fh = new sdk.FairHopper(FAIRHOPPER_HOST, FAIRHOPPER_PORT);
await fh.ping();
console.log(`Pinging FairHopper server on ${FAIRHOPPER_HOST}:${FAIRHOPPER_PORT}`);
const pingResult = await fh.ping();
console.log("Ping result:", pingResult);
console.log();
game = await fh.startGame("Mirko"); game = await fh.startGame("Mirko");
console.log("Board dimensions:", game.board); console.log("Board dimensions:", game.board);
console.log("Destination position:", game.destination.position); console.log("Destination position:", game.destination.position);
console.log(); console.log();
console.log("Initial player position is", game.player.position);
const playerUuid = game.player.uuid;
console.log("Current position is", game.player.position);
let moveResult; let moveResult;
const playerUuid = game.player.uuid;
try { try {
console.log("Trying to move right"); console.log("Trying to move right");
moveResult = await fh.move(playerUuid, "right"); moveResult = await fh.move(playerUuid, sdk.Direction.RIGHT);
console.log("Successfully moved to", moveResult.player.position); console.log("Successfully moved to", moveResult.player.position);
console.log("Trying to move right"); console.log("Trying to move right");
moveResult = await fh.move(playerUuid, "right"); moveResult = await fh.move(playerUuid, sdk.Direction.RIGHT);
console.log("Successfully moved to", moveResult.player.position); console.log("Successfully moved to", moveResult.player.position);
console.log("Trying to move right"); console.log("Trying to move right");
moveResult = await fh.move(playerUuid, "right"); moveResult = await fh.move(playerUuid, sdk.Direction.RIGHT);
console.log("Successfully moved to", moveResult.player.position); console.log("Successfully moved to", moveResult.player.position);
console.log("Trying to move down"); console.log("Trying to move down");
moveResult = await fh.move(playerUuid, "down"); moveResult = await fh.move(playerUuid, sdk.Direction.DOWN);
console.log("Successfully moved to", moveResult.player.position); console.log("Successfully moved to", moveResult.player.position);
} catch (err) { } catch (err) {
if (err instanceof sdk.PositionError) { if (err instanceof sdk.PositionError) {
console.error("Cant't move in this direction"); console.error("Cant't move in this direction");
} else {
console.error(err);
} }
} }
} }

View File

@ -28,6 +28,13 @@ class PositionError extends Error {
} }
} }
const Direction = {
LEFT: "left",
RIGHT: "right",
UP: "up",
DOWN: "down",
};
class FairHopper { class FairHopper {
constructor(host, port) { constructor(host, port) {
this.host = host; this.host = host;
@ -121,4 +128,5 @@ module.exports = {
PlayerNotFoundError, PlayerNotFoundError,
PlayerInactiveError, PlayerInactiveError,
PositionError, PositionError,
Direction,
}; };

44
python/demo.py Normal file
View File

@ -0,0 +1,44 @@
from fh_sdk import Direction, FairHopper, PositionError
FAIRHOPPER_HOST = "http://127.0.0.1"
FAIRHOPPER_PORT = 8010
def main() -> None:
fh = FairHopper(FAIRHOPPER_HOST, FAIRHOPPER_PORT)
print(f"Pinging FairHopper server on {FAIRHOPPER_HOST}:{FAIRHOPPER_PORT}")
res = fh.ping()
print("Ping result:", res)
print()
game = fh.start_game(player_name="Mirko")
print("Board dimensions:", game.board)
print("Destination position:", game.destination.position)
print()
print("Initial player position is", game.player.position)
player_uuid = game.player.uuid
try:
print("Trying to move right")
moveResult = fh.move(player_uuid, Direction.RIGHT)
print("Successfully moved to", moveResult.player.position)
print("Trying to move right")
moveResult = fh.move(player_uuid, Direction.RIGHT)
print("Successfully moved to", moveResult.player.position)
print("Trying to move right")
moveResult = fh.move(player_uuid, Direction.RIGHT)
print("Successfully moved to", moveResult.player.position)
print("Trying to move down")
moveResult = fh.move(player_uuid, Direction.DOWN)
print("Successfully moved to", moveResult.player.position)
except PositionError:
print("Cant't move in this direction")
if __name__ == "__main__":
main()