Ohodnotenie, vytknutie niektorych veci v programe – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ohodnotenie, vytknutie niektorych veci v programe – Python – Fórum – Programujte.comOhodnotenie, vytknutie niektorych veci v programe – Python – Fórum – Programujte.com

 

pato830
Newbie
8. 12. 2007   #1
-
0
-

Zdravím všetkých, takže moj prvý "program" je na svete. Je to moj prvý jazyk a preto by som rád požiadal o kritiku, dake hodnotenie. Je to len preto, aby som vedel, že to určite tak robiť nemožem v budúcnosti. Skutočne budem rad každej kritike :) Viem o jednej veci, ktorá tam riešena nie je, no to spravím, hned ako na to pridem :) Do súboru sa to uklada pre buducu historiu, kde by boli tí najlepši, resp. najlepšie vysledky. Ďakujem



print ' Vitajte v hre Keno :) '
print
print ' Tip zapiste v tvare prve cislo [ciarka] druhe cislo [ciarka] tretie cislo [ciarka] atd!!!'
print ' Maximalny pocet tipov je 10, cisla je mozne tipovat od 1 do 80 '
print '*'*90
print
print ' Pre zaciatok hry Vam darujem 100 SK :D '
print
import random
konto=100
spustenie="A"
print
while spustenie is "A" or spustenie is "a":
print
spustenie=raw_input('Pre zacatie hry stlacte >A<, pre ukoncenie >N< ! ---> ')
print
if spustenie is "A" or spustenie is "a":
while 1:
try:
stavka=input('Zadaj vysku stavky: ')
while konto < stavka or stavka < 1:
stavka=input('Zadaj vysku stavky: ')
break
except (NameError, SyntaxError, TypeError):
print "Stavku zadavaj pozorne, ide o vsetko :)!"
else:
continue
while 1:
try:
poletip=input('Zadaj svoj tip: ')
if len(poletip) not in xrange(1,11):
print
print " Maximalny pocet tipov je 10, vsetky tipy po 10. tipe budu zmazane !!!"
poletip2=list(poletip[0:10])
del poletip
break
except NameError:
print "Precitajte si pozorne pravidla a zopakujte Vas tip!!! "
except SyntaxError:
print "Precitajte si pravidla a skuste znova!!!"
except TypeError:
print "Aj v pripade zadania len jedneho tipu, piste za tipom ciarku!!! "
else:
continue
konto=konto-stavka
poletip2.sort()
polekeno=xrange(1,81)
polevylosovane=random.sample(polekeno, 20)
del polekeno
polevylosovane.sort()
vysledok=[]
zmenapoletip2=len(poletip2)
for pozicia in xrange(0,(len(poletip2))):
if min(poletip2) < 1:
poletip2.remove(min(poletip2))
elif max(poletip2) >80:
poletip2.remove(max(poletip2))
else:
for pozicia in xrange(0,(len(poletip2))):
vysledok.append(int(poletip2[pozicia] in polevylosovane))
del pozicia
if len(poletip2) < zmenapoletip2:
print
print " Tipy zadane mimo rozsah 1 az 80 sa neberu do uvahy pri zrebovani!!!"
del zmenapoletip2
print
print '-'*90
print ' Pocet uhadnutych cisiel: ',vysledok.count(1)
print
print ' Vylosovane boli tieto cisla:'
print '--->',polevylosovane
del 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
konto=stavka*(vysledok.count(1))+konto
del stavka
if konto==0:
spustenie="N"
print " Zial, prehrali ste vsetky svoje peniaze. Prajeme pekny den :D "
else:
print ' Vyska Vaseho konta je:'
print '--->',konto,' SK'
print '-'*90
else:
print
historia=('Historia.txt')
subor=file(historia,'a')
zapis=raw_input('Zadajte svoje meno: ')+(' : ')+(str(konto))
subor.write((zapis) + '\n')
subor.close()
print
print " '||''|. ..|''|| '||' '|' '||' '||''|. '||''''| '|. '|' '||' | "
print " || || .|' || '|. .' || || || || . |'| | || ||| "
print " || || || || || | || || || ||''| | '|. | || | || "
print " || || '|. || ||| || || || || | ||| || .''''|. "
print " .||...|' ''|...|' | .||. .||...|' .||.....| .|. '| .||. .|. .||. "
print
print
print
print " '|. '|' | '||''|. '||' '|' '||''|. '||' '|' ..|'''.| '||''''| "
print " |'| | ||| || || || | || || || | .|' ' || . "
print " | '|. | | || ||'''|. || | || || || | || ||''| "
print " | ||| .''''|. || || || | || || || | '|. . || "
print " .|. '| .|. .||. .||...|' '|..' .||...|' '|..' ''|....' .||.....| "
print
import time
time.sleep(3)

Nahlásit jako SPAM
IP: 217.12.51.–
pato830
Newbie
7. 2. 2008   #2
-
0
-

Vidim, že som tým svojim programom očaril z reakcii :) No nic, tak sem davam pokročilejsiu verziu, ošetrenu myslim že už voči všetkým možným chybám na vstupe, hodnotenie je taktiež viac vicibrené. Mám z toho skutočne radosť, že to ide tak ako má a tomu chápem. Ale mám predsa len otázku:
1. Ako prinutit prostredie prikazového riadku, aby po sputení programu malo presne 90 znakov na širku? Kludne ma odporučte aj na dáky článok, alebo podobne, pretože ja neviem ani čo vlastne mám hladať. Vdaka

Tu je ten moj krásavec :D :

print "                                Vitajte v hre Keno :)					 "

print
print " Tip zapiste v tvare prve cislo [ciarka] druhe cislo [ciarka] tretie cislo [ciarka] atd!!!"
print " Maximalny pocet tipov je 10, cisla je mozne tipovat od 1 do 80 "
print "*"*90
print
print " Pre zaciatok hry Vam darujem 100 SK :D "
print
import random
konto=100
spustenie="A"
print
while spustenie is "A" or spustenie is "a":
print
spustenie=raw_input("Pre zacatie hry stlacte >A<, pre ukoncenie >N< ! ---> ")
print
if spustenie is "A" or spustenie is "a":
while 1:
try:
stavka=input("Zadaj vysku stavky: ")
while konto < stavka or stavka < 1:
print "Stavku zadavajte pozorne, skontrolujte si vysku svojho konta!!!"
stavka=input("Zadaj vysku stavky: ")
break
except (NameError, SyntaxError, TypeError):
print "Stavku zadavaj pozorne, ide o vsetko :)!!!"
else:
continue
while 1:
try:
poletip=input('Zadaj svoj tip: ')
if len(poletip) not in xrange(1,11):
print
print " Maximalny pocet tipov je 10, vsetky tipy po 10. tipe budu zmazane !!!"
poletip2=list(poletip[0:10])
del poletip
break
except NameError:
print "Precitajte si pozorne pravidla a zopakujte Vas tip!!! "
except SyntaxError:
print "Precitajte si pravidla a skuste znova!!!"
except TypeError:
print "Aj v pripade zadania len jedneho tipu, piste za tipom ciarku!!! "
else:
continue
konto=konto-stavka
poletip2.sort()
polekeno=xrange(1,81)
polevylosovane=random.sample(polekeno, 20)
del polekeno
polevylosovane.sort()
vysledok=[]
zmenapoletip2=len(poletip2)
for pozicia in xrange(0,(len(poletip2))):
if min(poletip2) < 1:
poletip2.remove(min(poletip2))
elif max(poletip2) >80:
poletip2.remove(max(poletip2))
for pozicia in xrange(0,(len(poletip2))):
if pozicia < len(poletip2):
if poletip2.count(poletip2[pozicia]) > 1:
poletip2.remove(poletip2[pozicia])
else:
for pozicia in xrange(0,(len(poletip2))):
vysledok.append(int(poletip2[pozicia] in polevylosovane))
del pozicia
if len(poletip2) < zmenapoletip2:
print
print " Tipy zadane mimo rozsah 1 az 80 sa neberu do uvahy pri zrebovani!!!"
del zmenapoletip2
print
print "-"*90
print " Pocet uhadnutych cisiel: ",vysledok.count(1)
print
print " Vylosovane boli tieto cisla:"
print "--->",polevylosovane
del polevylosovane
print
if len(poletip2)==0:
print " Nezadali ste ani jedno cislo v rozsahu 1 az 80 !!!"
else:
print " Vas tip bol: "
print "--->",list(poletip2)
print
if len(poletip2)==1:
moznosti=(0,2)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==2:
moznosti=(0,0,8)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==3:
moznosti=(0,0,2,16)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==4:
moznosti=(0,0,0,8,32)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==5:
moznosti=(0,0,0,2,16,40)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==6:
moznosti=(1,0,0,1,2,20,60)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==7:
moznosti=(1,0,0,0,2,10,40,80)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==8:
moznosti=(1,0,0,0,1,4,40,60,100)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==9:
moznosti=(1,0,0,0,0,3,20,30,60,120)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
elif len(poletip2)==10:
moznosti=(1,0,0,0,0,3,10,20,50,100,200)
konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
del vysledok
del stavka
if konto==0:
spustenie="N"
print " Zial, prehrali ste vsetky svoje peniaze. Prajem pekny den :D "
print
print "-"*90
import time
time.sleep(3)
else:
print " Vyska Vaseho konta je:"
print "--->",konto," SK"
print "-"*90
else:
print
historia=('Historia.txt')
subor=file(historia,'a')
zapis=raw_input('Zadajte svoje meno: ')+(' : ')+(str(konto))
subor.write((zapis) + '\n')
subor.close()
print
print " '||''|. ..|''|| '||' '|' '||' '||''|. '||''''| '|. '|' '||' | "
print " || || .|' || '|. .' || || || || . |'| | || ||| "
print " || || || || || | || || || ||''| | '|. | || | || "
print " || || '|. || ||| || || || || | ||| || .''''|. "
print " .||...|' ''|...|' | .||. .||...|' .||.....| .|. '| .||. .|. .||. "
print
print
print
print " '|. '|' | '||''|. '||' '|' '||''|. '||' '|' ..|'''.| '||''''| "
print " |'| | ||| || || || | || || || | .|' ' || . "
print " | '|. | | || ||'''|. || | || || || | || ||''| "
print " | ||| .''''|. || || || | || || || | '|. . || "
print " .|. '| .|. .||. .||...|' '|..' .||...|' '|..' ''|....' .||.....| "
print
import time
time.sleep(3)

Nahlásit jako SPAM
IP: 217.12.51.–
geon0
Grafoman
7. 2. 2008   #3
-
0
-

Jaj, tohle mi nějak uniklo ;-) Takže pár mých připomínek:

* pro lepší čitelnost doporučuji nastudovat print se třemi uvozovkami na začátku i konci
* pro lepší udržovatenost doporučuji do elif nedávav stejné opakující se věci - dát to mimo celý if, když to platí pro všechno. Mluvím o konto=stavka*(int(moznosti[(vysledok.count(1))]))+konto
* pro lepší čitelnost i udržovatelnost bych se nebál funkcí
* všechny importy na začátek
* použivání funkce del je v Pythonu v této úrovni dost zbytečné. Nic tím neušetříš a ztrácíš na čitelnosti
* pokud chceš hodnotit, neškodí u význačných či složitějších částí komentář

Jinak je to fajn, funguje. Jo a to "přesně 90 znaků na šířku" - to nejde. Leda pak jokenní programování, tedy gui, tedy tkinter, wx, gtp, qt, atd.

Nahlásit jako SPAM
IP: 83.69.40.–
geon. volume doprava.
pato830
Newbie
7. 2. 2008   #4
-
0
-

To geon : Geon, ty si boh :) Vdaka tebe a tvojmu serialu som sa naučil tieto veci a teraz hodnotiš moj prvý pokus v živote v čomkolvek niečo spraviť. Tak dakujem. Chyby si poopravujem. Tie printy sa ani mne nepacili, že ich je také kvantum, takže to určite poriešim. Potom sa pustím konečne do tej historie. Skrátka nejaký prehľad najlepších vysledkov a možno ešte dačo ma napadne. Tak zatím a maj sa fajn.

Nahlásit jako SPAM
IP: 217.12.51.–
pato830
Newbie
17. 4. 2008   #5
-
0
-

Zdravim vsetkych. Takze k dnesnemu dnu som dal dokopy ten moj program. V prilohe je program pre uzivatelov windowsov, ktory nemaju python nainstalovany a taktiez aj pre python pozitivnych a uzivatelov linuxovych distier a asi aj macov, kde je python tiez uz nainstalovany. Neprisiel som na to, ci sa sem da vlozit aj viac archivov, takze treba stiahnut cely archiv, ktory obsahuje aj exe. Som sa to snazil co najlepsie, tak snad to aspon na chvilku niekoho zabavi. V archive pre windows sa exe subor nachadza v zlozke dist.
Su tam poopravovane dake chyby, spravena historia. V reakcii na geonovo hodnotenie napisem tolkoto. Print s tromi uvodzovkami som sa tam snazil dat, ale neviem, ci to ma byt tak. Hladal som dake vzorove priklady, ale zial. Funkcie som nepouzil, to si necham na dalsi program, bo to najprv musim zvladnut. Funkciu del som viac nepouzival, ale tam kde bola, som ju nechal, aj ked ako vravis zbytocne. Ale som ti vdacny a tie rady si v dalsej tvorbe urcite vezmem k srdcu.

p.s.: Ak sa najdu dake chyby, budem iba rad, ak mi ich oznamite.

Nahlásit jako SPAM
IP: 217.12.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Otvoriť v programe ... — založil mephi

Rada v programe c++ — založil koral000

ComboBox v programe — založil kotlas6667

Otáčanie v programe — založil letsthrowq

Zadrhel v programe — založil lacino88

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý