Just an update

main
Michael Meyer-Geerken 2025-09-05 23:15:17 +02:00
parent 10a976fc70
commit 3439e4d403
4 changed files with 142 additions and 29 deletions

@ -0,0 +1,26 @@
[
{
"problem": "probatio",
"size": 3
},
{
"problem": "primus",
"size": 6
},
{
"problem": "secundus",
"size": 12
},
{
"problem": "tertius",
"size": 18
},
{
"problem": "quartus",
"size": 24
},
{
"problem": "quintus",
"size": 30
}
]

@ -1,29 +0,0 @@
import requests
import json
endpointUrl = "https://31pwr5t6ij.execute-api.eu-west-2.amazonaws.com/"
selectUrl = endpointUrl + "select"
exploreUrl = endpointUrl + "explore"
guessUrl = endpointUrl + "guess"
id = "icfp@zeuxis.de DHf1KQyE3vCvMqPaA4LLlw"
def select( id, problem):
selectJson = {
"id": id,
"problemName": problem
}
response = requests.post(selectUrl, json=selectJson)
return response.json()
def explore( id, plans):
exploreJson = {
"id": id,
"plans": plans
}
response = requests.post(exploreUrl, json=exploreJson)
return response.json()
def guess( id, rooms, startingroom, connections ):
pass

@ -0,0 +1,70 @@
import requests
import os.path
from argparse import Namespace
from typing import List
class APIError(Exception):
pass
class LibConfig:
endpointUrl = "https://31pwr5t6ij.execute-api.eu-west-2.amazonaws.com/"
selectUrl = endpointUrl + "select"
exploreUrl = endpointUrl + "explore"
guessUrl = endpointUrl + "guess"
def __init__(self):
config = {}
with open(os.path.join(os.path.dirname(__file__), "..", "config")) as h:
for line in h.readlines():
parts = line.strip().split("=")
self.__setattr__(parts[0].lower(), parts[1].replace('"', ""))
class Connections:
def __init__(self):
self.connections = []
def add_connection(self, from_room, from_door, to_room, to_door):
connection = { "from":{"room": from_room, "door": from_door},
"to":{"room": to_room, "door": to_door}}
self.connections.append(connection)
class LibRequests:
config ={}
def __init__(self):
self.config = LibConfig()
def select(self, problem, id=config.id):
selectJson = {
"id": id,
"problemName": problem
}
response = requests.post(self.config.selectUrl, json=selectJson)
return response.json()["problemName"]
def explore(self, plans: List[str], id=config.id):
exploreJson = {
"id": id,
"plans": plans
}
response = requests.post(self.config.exploreUrl, json=exploreJson)
return response.json()
def guess(self, rooms: List[str], startingroom, connections , id=config.id ):
guessJson = {
"id": id,
"map":{
"rooms": rooms,
"startingRoom": startingroom,
"connections": connections.connections
}
}
response = requests.post(self.config.guessUrl, json=guessJson)
return response.json()["correct"] == "true"

@ -0,0 +1,46 @@
class Room
def __init__(self, room_id: str, pathcounter: int):
self.id = room_id
self.pathcount = pathcounter
self.rooms = [None for _ in range(6)]
def createRoom(self,no: int,id):
self.rooms[no]=Room(id,self.pathcount+1)
def full_id(self):
if self.id is None:
return None
fullid = self.id
for room in self.rooms:
if room is None:
return None
fullid = fullid + room.id
return fullid
def rooms_without_id(self):
none_rooms = []
for doorcounter, room in enumerate(self.rooms):
if room is None:
none_rooms.append(doorcounter)
return none_rooms
def setRoomId(self,id:str):
if self.id is None & self.pathcount == 0:
self.id =id
else:
print("Id can not be set for initial Path Element!")
class LibMapper:
def __init__(self, no_of_rooms_to_find):
self.no_of_rooms = no_of_rooms_to_find
def start(self):
if __name__ == '__main__':