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

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

 

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

Ludek
Python › While cyklus
2. 4. 2022   #390073

Jen jeste uvedu, ze nejsem student, ani se programopvanim nezivim (coz je ale asi z dotazu patrne :) ). 

Jedna se cas kodu ze hry piskvory (hraci plocha ma ale jen 3x3 pole):

run = [True]

def kontrola_radku():
    for i in range(3):
        if hraci_plocha[i].count("X") == 3:
            print("""vyhral hrac "X" """)
            run[0] = False
        if hraci_plocha[i].count("O") == 3:
            print("""vyhral hrac "O" """)
            run[0] = False

while run[0]:
    hrac1 = int(input("""Hrac "O", zadej cislo tahu: """))
    zapis(hrac1, "O")
    hrac2 = int(input("""Hrac "X", zadej cislo tahu: """))
    zapis(hrac2, "X")
    for i in hraci_plocha:
        print(" ".join(i))
    kontrola_radku()
    kontrola_sloupce()
    kontrola_diagonaly()

Jde mi to o to, ze pokud je ve funkci kontrola_radku() splnena podminka, ze hrac ma 3 znaky v  radku tak, aby se while cyklus ukoncil.

Tak jak to je napsane to bez problemu funguje. Jen by me zajimalo, jak by se to spravne melo delat, ci jinak receno co je best practice.

Ludek
Python › While cyklus
2. 4. 2022   #390068

Ahoj, chtel bych se zeptat jak nejlepe ridit while cyklus zevnitr fuknce. Mam tedy podminku ktera ridi while cyklus. V tom cyklu spoustim funkci a podle toho co ve funcki nastane bych potreboval podminku zmenit na False. Napr.:

run = True

def fce():

           if neco == neco:

                      run = False

while run:

           fce()

Vzhledem k tomu, ze run je mimo funkci, tak se mi cyklus neukonci. Slo by to udelat pres global, ale to tedy zase pry neni uplne njecistsi reseni. Udelal jsem to tedy pres list takto:

run = [True]

def fce():

        if neco == neco:

               run[0] = False

while run:

        fce()

Coz tedy funguje, ale chtel bych se zeptat jestli to tak je OK, nebo jake by bylo nejlepsi reseni.

Diky.

 

 

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