Files
mestint/ora3/sajat.py
2025-03-14 13:33:46 +01:00

47 lines
1.7 KiB
Python

#a* vagy valami informalt keresovel
from keres import *
class Korso(Feladat): # feladat osztaly a szuroje
def __init__(self, kezdo, cél):
super().__init__(kezdo, cél)
self.korsok=(3,5,8) #korsok meretei
def célteszt(self, allapot:tuple[int,int,int]) -> bool:
if allapot[0] == self.cél or allapot[1] == self.cél or allapot[2] == self.cél:
#teljesult a cél allpot
return True
else:
return False
def rákövetkező(self, allapot: tuple[int,int,int]) -> list[tuple[str, tuple[int,int,int]]]:
lepesek = []
for i in range(3):
for j in range(3):
if i != j: #nem toltunk onmagabol onamagaba
if allapot[i] > 0 and allapot[j] < self.korsok[j]: #van e folyadek vagy televan a korso:
m = min(allapot[i], self.korsok[j]-allapot[j]) #self.korsok[j] max(Hj)-aj
tmp_allapot = list(allapot) #ezzel szerkesztheto a tuple
tmp_allapot[i] -= m
tmp_allapot[j] += m
tmp = (f'{i+1}-bol toltok {j+1}-be {m} litert', tuple(tmp_allapot))
lepesek.append(tmp) #amit a listaba rakunk
return lepesek
h3 = Korso((2,2,3), 4)
#print(h3.rákövetkező(h3.kezdő))
#print(h3.célteszt((2,5,6)))