Wiz
Profilo di
Nome | Wiz |
---|---|
Indirizzo email | False |
Avatar | |
Messaggi | 1 |
-
- 2024-06-12 19:23:29
- Tris
- Forum >> Programmazione Python >> Videogames
-
Non riesco ad avviare il programma, riporta un errore e non capisco perchè, inoltre ho provato anche si Geany su os Linux e riporta il solito errore..
grazie
errore:
Gioca a Tris!
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 132, in <module>
NameError: name 'letteraGiocatore' is not defined
[Program finished]
di seguito il codice:
import random def disegna_tabella(tabella): print (" | |") print (" "+ tabella7+ " | "+ tabella8+ " | "+ tabella9) print (" | |") print("----‐-------------") print (" | |") print (" "+ tabella4+ " | "+ tabella5+ " | "+ tabella6) print (" | |") print("----‐-------------") print (" | |") print (" "+ tabella1+ " | "+ tabella2+ " | "+ tabella3) print (" | |") disegna_tabella([" "] * 10) def letteraGiocatore(): lettera="" while not(lettera=="x" or lettera=="o"): print("vuoi la x o la o?") lettera=input().upper() if lettera=="x": return ("x","o") else: return ("o","x") def chi_inizia(): if random.randint(0,1)== 0: return "computer" else: return "giocatore" def gioca_ancora(): print("Vuoi giocare ancora? (s=Si, n=No)") return input().lower().startswith("s") def fai_la_mossa(tabella, lettera, mossa): tabellamossa=lettera def il_vincitore(ta, le): return ( (ta7== le and ta8 ==le and ta9==le) or (ta4== le and ta5 ==le and ta6==le) or (ta1== le and ta2 ==le and ta3==le) or (ta7== le and ta4 ==le and ta1==le) or (ta8== le and ta5 ==le and ta2==le) or (ta9== le and ta6 ==le and ta3==le) or (ta7== le and ta5 ==le and ta3==le) or (ta9== le and ta5 ==le and ta1==le)) def spazio_libero(tabella, mossa): return tabellamossa== " " def crea_copia_tabella(tabella): copiaTab=[] for i in tabella: copiaTab.append(i) return copiaTab def mossa_giocatore(tabella): mossa=" " while mossa not in "1 2 3 4 5 6 7 8 9".split() or not spazio_libero(tabella,int(mossa)): print("Quale sarà la tua prossima mossa? (1-9)") mossa=input() return int(mossa) def fai_mossa_casuale_da_lista(tabella, lista_mosse): possibili_mosse=[] for i in lista_mosse: if spazio_libero(tabella,i): possibili_mosse.append(i) if len(possibili_mosse)!=0: return random.choice(possibili_mosse) else: return None def mossa_computer(tabella, lettera_computer): if lettera_computer=="X": lettera_giocatore="O" else: lettera_giocatore="X" for i in range(1, 10): copia=crea_copia_tabella(tabella) if spazio_libero(copia, i): fai_la_mossa(copia, lettera_computer, i) if il_vincitore(copia, lettera_computer): return i for i in range(1,10): copia=crea_copia_tabella(tabella) if spazio_libero(copia, i): fai_la_mossa(copia, lettera_giocatore, i) if il_vincitore(copia, lettera_giocatore): return i mossa=fai_mossa_casuale_da_lista(tabella[1,3,7,9]) if mossa !=None: return mossa if spazio_libero(tabella, 5): return 5 return fai_mossa_casuale_da_lista(tabella, [2,4, 6, 8]) def tabella_completa(tabella): for i in range(1, 10): if spazio_libero(tabella, i): return False else: return True print('Gioca a Tris!') while True: la_tabella=[" "]*10 lettera_giocatore, lettera_computer = letteraGiocatore() turno=chi_inizia() print("il "+turno+ " parte per primo.") partita_corso=True while partita_in_corso: if turno == 'giocatore': # Tocca al giocatore. disegna_tabella(la_tabella) mossa = mossa_giocatore(la_tabella) fai_la_mossa(la_tabella, lettera_giocatore, mossa) if il_vincitore(la_tabella,lettera_giocatore): disegna_tabella(la_tabella) print ("evviva, hai vinto!") partita_corso=False else: if tabella_completa(la_tabella): disegna_tabella(la_tabella) print ("la partita è finita in pareggio.") break else: turno="computer" else: mossa=mossa_computer(la_tabella, lettera_computer) fai_la_mossa(la_tabella, lettera_computer, mossa) if il_vincitore(la_tabella, lettera_computer): disegna_tabella(la_tabella) print ("il computer ti ha sconfitto. Hai perso!") partita_corso=False else: if tabella_completa(la_tabella): disegna_tabella(la_tabella) print ("La partitita è finita in parità.") break else: turno="giocatore" if not gioca_ancora():break