Anonymní profil Ahoj3 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Ahoj3 – Programujte.comAnonymní profil Ahoj3 – Programujte.com

 

Příspěvky odeslané z IP adresy 78.45.112.–

Python › Zhodnocení naprogramovené hr…
24. 8. 2011   #146714

#5 nervak
Omlouvam se, že toto vlákno po delší době opět obnovuji, ale nevím, jak zrealizovat jeden nervakův tip na zlepšení hry. Týká se to tohoto : "Seznam místo objektu je k ničemu. To si budeš pamatovat pořadí všech hodnot a při každé změně hledat, co všechno musíš upravit ?"

Vůbec nevím, jak to udělat. Zdá se mi to snad nemožné s absencí seznamu. Ten text mi není zcela jasný. Objektem je myšlena instance třídy, nebo něco jiného?

Můžete mi prosím pomoci, jak ten nervakův vylepšovák napsat do té hry? Nemusíte mi říkat vše, stačí mě jenom nějaká nápověda, rada, jak s tím začít. Samozřejmě když mi to řeknete komplet vše, jak to udělat, taky se nebudu zlobit :)

Python › Začátečník a problémy
10. 7. 2011   #144132

#34 peXtr
Jestli nechceš aby ti ten program spadl stačí když odpověď nebudeš převádět pomocí int() na čísla, tu podmínku nebudeš testovat s čísly, ale s řetězci. Aby si změnil číslo např: 25 na řetězec  napiš:

str(25) # změní se na "25"
str(2 + 3)  # změní se na "5"

?

Jestli  napíšeš jako odpověď písmeno, program ji vyhodnotí jako špatnou odpověď a ne jako překlep.

Nebo zkus tuhle stránku, kde je toho pro python docela dost, tedy pro začátečníky. http://www.geon.wz.cz/buwralug/        na ten problém, aby ti program nespadl, když se pokouší písmeno změnit na číslo zkus konkrétně tenhle odkaz :  http://www.geon.wz.cz/buwralug/e-errors.html    

Návrhy na vylepšení › žádné články v sekci kurz py…
5. 7. 2011   #143766

Když jdu na kurz pythonu (programování - python - kurz pythonu) v sekci se mi neukáží žádné články a napíše se, že v rubrice žádné články nejsou.

Python › Zhodnocení naprogramovené hr…
15. 6. 2011   #143218

To Spectator : Děkuju mockrát :) Nevím jest-li si nenarazil na pár problémů, které se mi nepodařilo odstranit např.: čím je had delší tím jede pomaleji. ( had s 3 kostičkami jede určitou vzdálenost 15.2 sek, s 50 kostičkami už 16.8sek, se 100 kostičkami 19s) Je to logické čím delší seznam, kde jsou všechny kostky hada, tím delší zpracování než se s tim všim pohne dopředu. Přitom když si zahraju Hada (samozřejmě ne toho mého) na mobilu žádnou změnu rychlosti nezaznamenám?! Jediné co mě napadlo je v průběhu hry zkracovat time.sleep(), nebo zmenšit hrací pole, aby Had nemohl tolik vyrůst a hru tím zpomalovat.
Ještě mam problém s tím, že když klávesu stiskneš moc rychle had se zastaví, popřípadě zajede do sebe a vznikne srážka. To bohužel nevím jak napravit a ani nevím proč to nastane. Když tlačítko zmáčknu rychle stisk se v programu nezaznamená, seznam kláves neukazuje žádné tlačítko, tak nechápu proč se had zastaví?

Python › Zhodnocení naprogramovené hr…
14. 6. 2011   #143202

Před delší dobou jsem zde psal ohledně seznamů v Pythonu. Po přečtění vašich reakcí na to, že bych měl pořádně projet základy, jsem se znovu vrátil k oněm základním věcem. Poté jsem zkusil naprogramovat hru hada.
Myslíte, že byste ten můj výtvor mohli zhodnotit? (k čemu máte výtky, popř. co byste udělali jinak...)
Zajímá mě jestli se mám pustit do nových lekcí, nebo pořád dřít ty základy.
 

from livewires import *
import random
import time


def kresli_hada(delka):
    hadak = []
    had_x =  random.randrange(100, 560,10)
    had_y =  random.randrange(100, 200, 10)
    plno = True
    for x in range(delka):
        had = box(had_x, had_y, had_x + 10, had_y + 10, filled = plno)
        hadak.append([had, had_x, had_y])
        had_x -= 10
        plno = False

    return hadak


def pohybHada(x, y):
    global koncime
    polozka = 0
    minule_x = hadak[polozka][1]
    minule_y = hadak[polozka][2]
    hadak[polozka][1] += x
    hadak[polozka][2] += y

    for blok, blok_x, blok_y in hadak[1:]:
        polozka += 1
        hadak[polozka][1] = minule_x
        hadak[polozka][2] = minule_y
        minule_x = blok_x
        minule_y = blok_y

    for blok, blok_x, blok_y in hadak:
        move_to(blok, blok_x, blok_y)

    konec = srazkaShadem()
    konec2 = srazkaSEzdi()
    
    srazkaSjidlem() 

    if konec == 0 or konec2 == 0:
        koncime = 0

    time.sleep(0.05)


def klavesy_a_pohybHada(zmena_x, zmena_y, klavesa1, klavesa2):
    seznam_klaves = [klavesa1, klavesa2]
    
    while koncime:
        pohybHada(zmena_x, zmena_y)             
        klavesy = keys_pressed()

        for klavesa in seznam_klaves:
            if klavesa in klavesy:
                return klavesa
     

def posunHada():
    klavesy = keys_pressed()

    if "a" in klavesy:
        klavesy = klavesy_a_pohybHada(-10, 0, "w", "s")
    elif "s" in klavesy:
        klavesy = klavesy_a_pohybHada(0, -10, "a", "d")
    elif "w" in klavesy:
        klavesy = klavesy_a_pohybHada(0, 10, "a", "d")
    elif "d" in klavesy:
        klavesy = klavesy_a_pohybHada(10, 0, "w", "s")


def skore(body):
    global sezrane_jidlo_text
    t = body
    sezrane_jidlo_text = text(t)


def jidlo():
    while 1:
        ruzne_souradnice = True
        jidlo_x = random.randrange(10,630,10)
        jidlo_y = random.randrange(0,470,10)
        for souradnice in hadak:
            if [jidlo_x, jidlo_y] == souradnice[1:]:
                ruzne_souradnice = False
                break
        if ruzne_souradnice == True:
            break

    jidlo = box(jidlo_x, jidlo_y, jidlo_x + 10, jidlo_y + 10)
    return [jidlo, jidlo_x, jidlo_y]


def srazkaSjidlem():
    global cele_jidlo, body      
    if hadak[0][1:] == cele_jidlo[1:]:
        hadak.append(cele_jidlo)
        cele_jidlo = jidlo()

        remove_from_screen(sezrane_jidlo_text)
        body += 1
        skore(body)     
       

def srazkaSEzdi():
    if hadak[0][1] == 640 or hadak[0][2] == 470:
        return 0
    elif hadak[0][1] == -10 or hadak[0][2] == -10:
        return 0


def srazkaShadem():
    for blok, blok_x, blok_y in hadak[1:]:
        if blok_x == hadak[0][1] and blok_y == hadak[0][2]:
            return 0


def jmeno_hrace():
    jmeno = raw_input("JMENO: ")
    return jmeno


def uloz_nejVysledky(body):
    soubor = file("NEJLEPSI VYSLEDKY - hadak1,1.txt","a")
    hrac = jmeno_hrace()
    text_body = str(body)
    soubor.write(text_body + " " + hrac)
    soubor.write("\n")
    soubor.close()


def cti_srovnej_nejVysledky():
    q = 0
    soubor = file("NEJLEPSI VYSLEDKY - hadak1,1.txt", "r")
    poradi = 1

    srovnani_seznamu = []

    for vysledek in soubor:
        srovnani = vysledek.split()
        srovnani_seznamu.append(srovnani)

    for skore, jmeno in srovnani_seznamu:
        srovnani_seznamu[q][0] = int(skore)
        q += 1

    print 10 * "_", "Tabulka s body hracu", 10 * "_"
    print "\n"
    srovnani_seznamu.sort()
    srovnani_seznamu.reverse()                 
    
    for skore, jmeno in srovnani_seznamu:
        print jmeno, ":", skore    

    soubor.close()


def smaz_tabulku():
    soubor = file("NEJLEPSI VYSLEDKY - hadak1,1.txt", "w")
    soubor.close()
 

znovu = "y"    
while znovu == "y":
    koncime = 1
    body = 0
 
    begin_graphics()
    allow_moveables()
   
    hadak = kresli_hada(5)
    cele_jidlo = jidlo()
    
    move(10, 450)       # skore se bude tisknout v rohu obrazovky
    skore(body)

    while koncime:
        posunHada()

    end_graphics()
  
    uloz_nejVysledky(body)
    cti_srovnej_nejVysledky()

    znovu = raw_input("Chces hrat znovu [y/n] : ")

print "\n"

smazat_tabulku = raw_input("Chces smazat tabulku se vsemi vysledky [y/n]: ")

if smazat_tabulku == "y":
    smaz_tabulku()
    print "Tabulka je smazana :)"


print "Dostal ses na konec programu, nic vic uz tady neni, musis si me spustit znova :)"

Python › rozdíl mezi == a is
4. 5. 2011   #141590

Je nějaký rozdíl mezi is a ==
Vím, že je spoustu jiných věcí, na které bych se měl na své úrovni programování ptát, ale mně vrtá hlavou zrovna tato otázka :)
Oba způsoby fungují dobře, jedná se snad o 2 možné varianty, které mohu používat, nebo snad když použiji v nějakém programu místo == is výsledný program bude pracovat jinak.

Python › seznam.index() vyhodí chybu…
27. 2. 2011   #139462

Mám problém zas s těmi seznamy. Mám seznam, který má v sobě další seznam a ten má v sobě další 2 seznamy.
Radši sem dám ten kod :)

seznam =[  [ [5,6], [7,8] ], [ [9,10], [11,12] ]  ]

for x,y in seznam:
seznam.index(x)


File "<pyshell#32>", line 2, in <module>
seznam.index(x)
ValueError: [5, 6] is not in list

Jediné co mě napadá proč to nefunguje, je , že x neni v tom hlavnim seznamu, ale je až v tom podseznamu. Jest-li je to opravdu tak, nevíte jak to vyřešit, aby zjistil na jakém místě je to x v podseznamu? Je to vůbec možné aby to Python zjistil, má na to nějakou metodu?

Python › přidání seznamů v seznamu do…
17. 2. 2011   #139012

Mám dva seznamy. Jeden má v sobě další seznamy (c) s nějakými čísly a druhý je prázdný. Přidej c do 2.seznamu jenom jestli tam to c ( se stejnými čísly) není. Jestli už je v 2. seznamu stačí když to c z 1. seznamu smažeš.
Mám problém u toho, že když to c v seznamu2 už je tak se mi do seznamu2 nenapíše ten seznam za c.

seznam = [[55,36,"kl"], [95,12,"dd"], [55,36,"Uj"], [55,36,"kl"], [11,9,5]]

seznam2 = []
print seznam
print len(seznam)

for c in seznam:

if c in seznam2:
print "Srazka"
seznam.remove(c)
else:
print "zadna srazka"
seznam2.append(c)

print c





print "seznam1:", seznam
print len(seznam)

print "seznam2:", seznam2
print len(seznam2)


Mně se v tom 2.seznamu nechce objevit [11,9,5], ale nevím proč. Mohl by mi prosím někdo vysvětlit, proč můj kod nefunguje?

Python › čtverec (box) se nechce hýba…
12. 2. 2011   #138768

To nervak : Děkuju mockrát. Já si toho vůbec nevšiml.

Python › čtverec (box) se nechce hýba…
12. 2. 2011   #138754

Nezdá se mi, že by byla chyba v programu, tedy alespoň já žádnou nevidím.
Nevíte co s tím dělat?

Python › čtverec (box) se nechce hýba…
12. 2. 2011   #138753

Mám problém s pohybem čtverce, který pronásleduje kuličku.
Vždy mi to vyhodí tuto chybovou hlášku:

  File "C:\Python27\lib\site-packages\livewires\beginners.py", line 902, in move_to

ox,oy = object.coords()[:2]
AttributeError: 'tuple' object has no attribute 'coords'



Tady je ten prográmek:

from livewires import*

import random
import time
begin_graphics(width = 800, height = 600)
allow_moveables()

def vyrobHrace():
global kruh, hx, hy
hx = random.randint(50, 620)
hy = random.randint(50, 480)
kruh = circle(hx, hy, 6.5, filled = 1)

def posunHrace():
global kruh, hx, hy
klavesy = keys_pressed()

if "a" in klavesy and hx > 7:
hx = hx - 0.1

if "d" in klavesy and hx < 800:
hx = hx + 0.1

if "s" in klavesy and hy > 6.5:
hy = hy - 0.1

if "w" in klavesy and hy < 600:
hy = hy + 0.1

move_to(kruh, hx, hy)


def vyrobRobota():
global rx, ry, robot
rx = random.randint(50, 620)
ry = random.randint(50, 480)
robot = (rx, ry, rx + 25, ry + 25)

def posunRobota():
global rx, ry, robot, hx, hy

if rx > hx:
rx = rx - 0.1

if rx < hx:
rx = rx + 0.1

if ry > hy:
ry = ry - 0.1

if ry < hy:
ry = ry + 0.1

move_to(robot, rx, ry, rx + 25, ry + 25)


vyrobHrace()
vyrobRobota()

while 1:
posunHrace()
posunRobota()



end_graphics()

Python › Nefunguje livewires
30. 1. 2011   #138314

Zkusil jsem uložit bez přípony .py ten prográmek, kde se mají nakreslit nějaké ty čáry. Pro otevření toho prográmku jsem musel zadat cestu k programu, kterým se bude ten prográmek s čárami spouštět. Našel jsem si tedy python.exe a dal otevřít. Program se měl ukázat v okně Otevřít v programu, ale není tam. Jak mám tedy otevřít program bez přípony .py nebo mám použít jinou příponu?

Python › Nefunguje livewires
29. 1. 2011   #138284

Já ale nemám problém s Tkinterem. Mně nefunguje livewires. Zkusil jsem si spustit již dříve vytvořený program v livewires (z 5.lekce), ale skončilo to chybovou hláškou. Když si kreslím čáry s příkazového řádku, livewires mi je nakreslí. Když to zkouším z Python shell otevře se mi akorát vytvořené okénko, ale čáry už nenakreslí.
Mám Python ve verzi 2.7 a Livewires 2.0.1 ( z odkazu z 0. lekce)

Python › Nefunguje Python GUI
25. 1. 2011   #138145

To sputnikone : Tak PythonGUI kamarádovi už funguje. Děkuji sputnikonovi za pomoc.

Python › Nefunguje Python GUI
24. 1. 2011   #138117

To sputnikone : PythonGUI v nabídce nemá.

Návrhy na vylepšení › Nezobrazují se mi úkoly k le…
22. 1. 2011   #138046

To Curo : Používám Internet Explorer 8

Návrhy na vylepšení › Nezobrazují se mi úkoly k le…
22. 1. 2011   #138038

Když se chci kouknout na nějaký vypracovaný úkol z Pythonu úkol se nezobrazí a nebo jenom na stránce problikne a pak zmizí. Díval jsem se ještě např.: na úkoly z PHP, C++, Java a ty se mi zobrazují, ale u Pythona nic :(
Tady je ten link na nějaký úkol z Pythona: http://programujte.com/?akce=ukol&id=970

U této lekce se mi zase neukáže script (hned na začátku pod menším nadpisem Začínáme) : http://programujte.com/?akce=clanek&cl=2005092501-python-10-lekce

Návrhy na vylepšení › Nezobrazují se mi úkoly k le…
21. 1. 2011   #138021

Když se chci podívat na nějaký vypracovaný úkol, úkáže se mi pouze, kdo úkol známkoval, od koho je atd.
Úkol samotný už nevidím. Používám Internet Explorer 8, OS Windows XP. Zkoušel jsem u Exploreru kompatibilní zobrazení, ale pořád ta samá stránka. Dokonce k některým lekcím se mě neukáže ukázka z kodu. Jen u notebooku, kde je sice taky IE8 mi úkol problikne před očima a pak zmizí, ale jde stránku zastavit, takže úkol nebo kod je možno vidět.

Python › Nefunguje Python GUI
21. 1. 2011   #138020

Kamarád se učí programovat v Pythonu. Bohužel mu jde spustit pouze přes příkazový řádek (prompt >>>)
Má PC s Windows XP. Nevíte jak to napravit, aby šel i ten Python GUI(IDLE)? Zkoušel už reinstal, ale bez výsledku :(
Předem děkuji za odpovědi.

Ahoj3
Python › problém s Tkinterem (11.lekce)
29. 9. 2010   #134067

Mám Python 2.6 neproběhli nějaké změny mezi 2.5 a 2.6, že by kod který je napsaný výše byl jen pro 2.5?
Protože napsané to je správně.

 

 

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