Zdravím všetkých, berte ma na milost, len začinam a žiadny jazyk nemám zvládnutý. Takže som sa rozhodol, že si napišem hru, nejakú jednoduchú, tak som sa rozhodol pre Keno10 :D. Ale mam dva problémy, s ktorými neviem pohnúť:
[seznam]Jeden je ten, že pokiaľ hráč vloži na vstupe hodnotu mimo rozsah povolenej, 1 až 80 vrátane, tak ju zmaže, ale v prípade, že je ich viac, už nie a nastne IndexError, pretože hodnota POZICIA sa bude rovnať hodnote LEN(POLETIP). A nie a nie na to prísť, ako to zapísať. to je jeden problem a ďakujem. :) [/seznam]
[seznam]Druhý problém je taktiež so vstupom. Može totiž byť buď tuple alebo číselná hodnota. Z toho vyplýva, ze pri najbližšom príkaze, ktorý už ale pre čiselnú hodnotu neplati, vyhodí TypeError. Dalo by sa to dať do TRY a EXCEPT a napisať do pokynov, aby sa za každý znak zapísala čiarka :) Ale to sa mi zdá take divné. Pripisať na ku každému vstupu čiarku automaticky, je myslím nemožné, lebo je to tuple. Poprosil by som radu aj k tomuto, stači len nasmerovanie, nechcem aby to niekto za mňa robil. Ďakujem[/seznam]
Tak to by asi bolo všetko, budem vdačný za každu odpoveď, pripadne poukázanie na niečo v programe, čo sa nerobí tak, alebo to ide aj jednoduchšie a pod. Velké diky všetkým.
print ' Vitajte v hre Keno :)'
print
print ' Tip zapiste v tvare prve cislo, druhe cislo, tretie cislo,...atd'
print ' Maximalny pocet tipov je 10, cisla je mozne tipovat od 1 do 80 :D'
print '*'*90
print
import random
while 1:
try:
poletip=input('Zadaj svoj tip: ')
break
except NameError:
print "Precitajte si pozorne pravidla a zopakujte Vas tip!!! "
except SyntaxError:
print "Precitajte si pravidla a skuste znova!!!"
else:
continue
if len(poletip) not in xrange(1,11):
print
print " Maximalny pocet tipov je 10, vsetky tipy po 10. tipe nebudu zaradene do zrebovania !!!"
poletip2=list(poletip)
del poletip2[10:len(poletip2)]
poletip2.sort()
polekeno=xrange(1,81)
polevylosovane=random.sample(polekeno, 20)
del polekeno
polevylosovane.sort()
vysledok=[]
for pozicia in (xrange(0, len(poletip2))):
if poletip2[pozicia] in xrange(1,81):
vysledok.append(int(poletip2[pozicia] in polevylosovane))
else:
del poletip2[poletip2.index(poletip2[pozicia])]
if len(poletip) > len(poletip2):
print
print " Cisla mimo rozsahu 1 az 80 nebudu zaradene do zrebovania, pretoze nesplnaju podmienky!!! "
print
print '-'*90
print ' Pocet uhadnutych cisiel: ',vysledok.count(1)
print
print ' Vylosovane boli tieto cisla:'
print '--->',polevylosovane
print
print ' Vas tip bol: '
if len(poletip2)==0:
print ' Nezadali ste ani jedno cislo v rozsahu 1 az 80 !!!'
else:
print '--->',poletip2
print '-'*90