A case su poredjane ovako
...Y
..YY
.YYY
YYYY
Ovde Y predstavlja casu, sto znaci ako sipate u prvu casu vecu kolicinu od njene zapremine to ce se preliti u druge 2 case i tako redom. Ja sam uspeo to da napravim ali je program bo dosta spor sa vecim kolicinama, pa sam odlucio da ga optimizujem, i evo sta sam uradio ali u kodu ima neki bug koji ne mogu da nadjem pa bih molio malo iskusnije programere da mi pomognu i ako znaju da kazu u cemu je problem
#Uraditi: Napravi lepo prelivanje
class Casa:
def __init__(self, zapremina):
self.z = zapremina
self.p = 0
def prelij(self,val):
for red in case:
if self in red:
try:
mr = case.index(red) # mesto reda u matrici
case[mr+1][case[mr].index(self)].puni(val/2.)
case[mr+1][case[mr].index(self)+1].puni(val/2.)
except:pass
break
def puni(self, value):
self.p+= value
if self.p > self.z:
self.prelij(self.p - self.z)
self.p = self.z
redovi = input('Unesi broj redova: ')
V = input('Unesi zapreminu case: ')
kol = input('Unesi kolicinu sampanjca: ')
case = []
for w in range(redovi):
case.append([Casa(V)]*(w+1))
case[0][0].puni(kol)
while 1:
x = input('Unesi red u kom se nalazi casa: ')
y = input('Unesi koja je casa po redu: ')
print case[x-1][y-1].p
Ako neko ima bolju ideju kako ovo moze da se uradi, bio bih mu zahvalan da i on prilozi svoju skriptu