Files
mestint/ora1/3_korsó.py
2025-03-10 16:46:29 +01:00

80 lines
2.0 KiB
Python

from keres import *
from random import randint
class Korsók(Feladat):
def __init__(self, ke,c):
self.kezdő= ke
self.cél=c
self.K1=3
self.K2=5
self.K3=8
def célteszt(self, állapot):
return állapot[0]==self.cél or állapot[1]==self.cél
def rákövetkező(self, állapot):
k1, k2,k3 =állapot
lépések=list()
if k1>0 and k2<self.K2:
m=min([k1,self.K2-k2])
lépések.append(("k1-ből k2-be",(k1-m,k2+m,k3)))
if k1 > 0 and k3 < self.K3:
m = min([k1, self.K3 - k3])
lépések.append(("k1-ből k3-ba",(k1-m, k2 , k3+m)))
if k2 > 0 and k3 < self.K3:
m = min([k2, self.K3 - k3])
lépések.append(("k2-ből k3-ba",(k1, k2-m, k3 + m)))
if k2 > 0 and k1 < self.K1:
m = min([k2, self.K1 - k1])
lépések.append(("k2-ből k1-be",(k1+m, k2 - m, k3)))
if k3 > 0 and k1 < self.K1:
m = min([k3, self.K1 - k1])
lépések.append(("k3-ből k1-be",(k1+m, k2, k3-m)))
if k3 > 0 and k2 < self.K2:
m = min([k3, self.K2 - k2])
lépések.append(("k3-ből k2-be",(k1, k2+m, k3 - m)))
return lépések
def __str__(self):
return 'Kancsó:' + str(self.kezdő)
# if __name__ == "__main__":
# korso=Korsók((8,0,0),4)
# print(korso)
# print('Szélességi keresés')
# a = szélességi_fakeresés(korso)
# print(a)
#
# utam = a.út()
# utam.reverse()
# print(utam)
korso=Korsók((2,2,3),4)
print(korso)
print(korso.rákövetkező(korso.kezdő))
while korso.célteszt(korso.kezdő)==False:
# print(korso)
print(korso.rákövetkező(korso.kezdő))
# i=int(input("Valassza ki a lépést: "))-1
i=randint(0,len(korso.rákövetkező(korso.kezdő))-1)
lepes=korso.rákövetkező(korso.kezdő)[i][1]
korso=Korsók(lepes,4)
print(korso)