Crea questo divertente gioco di numerologia in Python per esercitarti nella manipolazione delle stringhe e conoscere Tkinter.
FLAMES è un gioco divertente per bambini che rappresentano amici, amanti, affettuosi, matrimoni e nemici. Il gioco prende i nomi di due persone e, con una serie di passaggi, determina la loro relazione. Per giocare a FLAMES, annota i nomi delle due persone, elimina le lettere corrispondenti e ottieni il conteggio dei caratteri rimasti.
Itera sulle lettere della parola, FLAMES usando il conteggio e rimuovi quella lettera. Ad esempio, se il conteggio è quattro, rimuovere la lettera M. Il conteggio ricomincia da E. Ripeti questo processo fino a quando rimane solo una lettera, che denota lo stato della relazione.
Il modulo Tkinter
Per costruire il gioco FLAMES, utilizzerai il modulo Tkinter. Tkinter è un modulo multipiattaforma, semplice e intuitivo che puoi utilizzare per creare rapidamente interfacce utente grafiche. Alcune delle applicazioni che puoi creare come principiante utilizzando Tkinter includono a
Lettore musicale, Calendario, Strumento di conversione del peso, e un Gioco di confusione di parole.Per installare tkinter nel tuo sistema, esegui il seguente comando nel terminale:
pip installa tkinter
Come costruire il gioco FLAMES usando Python
Puoi trovare il codice sorgente del gioco FLAMES usando Python in questo Deposito GitHub.
Importa il modulo Tkinter. Definire una funzione, remove_match_char() che accetta due liste come input. Utilizzare un ciclo for nidificato per scorrere entrambi gli elenchi. Controlla se c'è un carattere corrispondente; se c'è, rimuovilo da entrambi gli elenchi e crea un terzo elenco che concatena entrambi gli elenchi con un asterisco in mezzo. L'asterisco funge da delimitatore.
Restituisce il terzo elenco insieme alla corrispondenza trovata come Vero. Nel caso in cui nessuna lettera corrisponda, restituire l'elenco come creato sopra.
da tkinter importare *
defremove_match_char(lista1, lista2):
per io In intervallo (len (lista1)):
per J In intervallo (len (list2)):
Se lista1[i] == lista2[j]:
c = lista1[i]
lista1.rimuovi (c)
lista2.rimuovi (c)
lista3 = lista1 + ["*"] + lista2
ritorno [elenco3, VERO]
lista3 = lista1 + ["*"] + lista2
ritorno [elenco3, Falso]
Definire una funzione, tell_status(). Recuperare il nome della persona inserita dall'utente utilizzando il file Ottenere() metodo sul widget Entry. Converti tutte le lettere in minuscolo ed elimina gli spazi intermedi. Converti il nome in un elenco di caratteri. Ripeti l'operazione con il nome della seconda persona e imposta il file procedere variabile a VERO.
deftell_status():
p1 = Person1_field.get()
p1 = p1.inferiore()
p1.replace(" ", "")
p1_lista = lista (p1)
p2 = Person2_field.get()
p2 = p2.inferiore()
p2.replace(" ", "")
p2_lista = lista (p2)
procedere = VERO
Finché il valore di procede non è vero, chiama the remove_match_char() function e passare le due liste appena create. Memorizza l'elenco concatenato e lo stato del flag ricevuto dalla funzione. Trova l'indice dell'asterisco che hai inserito e taglia le stringhe in due elenchi prima e dopo di esso.
Conta il numero di caratteri nelle due liste e definisci una lista che memorizzi i vari stati che una relazione può avere secondo il gioco FLAMES.
Mentre procedere:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
procedi = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[star_index + 1:]
conteggio = len (p1_list) + len (p2_list)
risultato = ["Amici", "Amore", "Affetto", "Matrimonio", "Nemico", "Fratelli"]
Fino a quando le lettere nell'elenco dei risultati non sono zero, memorizza il valore dell'indice da cui devi eseguire l'affettamento. Se l'indice è maggiore o uguale a zero, suddividere gli elenchi in due parti e archiviare la stringa concatenata con la parte destra aggiunta per prima nell'ordine. Questo ti assicura di poter contare in senso antiorario.
Inserisci il risultato nel campo dello stato alla posizione del primo carattere per visualizzare lo stato della relazione.
Mentre len (risultato) > 1:
split_index = (count % len (risultato) - 1)Se indice_diviso >= 0:
destra = risultato[indice_diviso + 1:]
sinistra = risultato[: split_index]
risultato = destra + sinistra
altro:
risultato = risultato[: len (risultato) - 1]
Campo_stato.insert(0, risultato[0])
Definire una funzione, cancella tutto(). Utilizzare la funzione delete() dal primo indice all'ultimo sui tre campi di immissione per cancellare i contenuti visualizzati sullo schermo. Utilizzare il metodo focus_set() sul primo campo di immissione per attivare e indicare all'utente di inserire i valori in esso.
defcancella tutto():
Persona1_campo.delete(0, FINE)
Persona2_campo.delete(0, FINE)
Stato_campo.delete(0, FINE)
Person1_field.focus_set()
Inizializza l'istanza Tkinter e visualizza la finestra root passandola alla classe. Imposta il colore di sfondo che preferisci, la dimensione e il titolo della tua applicazione.
radice = Tk()
root.configure (sfondo='#A020F0')
radice.geometria("700x200")
radice.titolo("Gioco delle FIAMME")
Definisci tre etichette per indicare le due persone e il loro stato sentimentale. Imposta la finestra principale in cui desideri inserirli, il testo che dovrebbe visualizzare, il colore del carattere, il colore di sfondo e gli stili del carattere. Aggiungi un po' di imbottitura in direzione orizzontale.
label1 = Etichetta (radice, testo="Nome 1: ", fg='#ffffff',bg='#A020F0', carattere=("ariale",20,"grassetto"), padx='20')
label2 = Etichetta (radice, testo="Nome 2: ", fg='#ffffff',bg='#A020F0', carattere=("ariale",20,"grassetto"), padx='20')
label3 = Etichetta (radice, testo="Stato delle relazioni: ", fg='#ffffff', bg='#A020F0',carattere=("ariale",20,"grassetto"), padx='20')
Usa il gestore della griglia per disporre i tre widget nella prima colonna. Posizionare la prima etichetta nella seconda riga, la seconda etichetta nella terza riga e la terza etichetta nella quarta riga.
etichetta1.griglia (riga=1, colonna=0)
etichetta2.griglia (riga=2, colonna=0)
etichetta3.griglia (riga=4, colonna=0)
Definisci tre widget di immissione per ottenere i valori delle due persone e visualizzare il loro stato. Imposta la finestra principale in cui desideri posizionare i widget e gli stili di carattere che dovrebbe avere.
Person1_field = Voce (root, font=("ariale", 15, "grassetto"))
Person2_field = Voce (root, font=("ariale", 15, "grassetto"))
Status_field = Voce (root, font=("ariale",15,"grassetto"))
Allo stesso modo, usa il gestore della griglia, per organizzare i widget nella seconda colonna. Usa il ipadx proprietà per impostare il numero di pixel da riempire all'interno dei bordi del widget.
Person1_field.grid (riga=1, colonna=1, ipadx="50")
Person2_field.grid (riga=2, colonna=1, ipadx="50")
Status_field.grid (riga=4, colonna=1, ipadx="50")
Definisci due pulsanti, Invia E Chiaro. Imposta la finestra madre in cui desideri inserirli, il testo che dovrebbe visualizzare, il colore di sfondo, il colore del carattere, le funzioni che dovrebbero eseguire quando si fa clic e gli stili del carattere.
Utilizzare il gestore della griglia per posizionare i pulsanti rispettivamente nella quarta e nella sesta riga della seconda colonna.
button1 = Pulsante (root, text="Invia", bg="#00ff00", fg="nero", comando=tell_status, font=("ariale",13,"grassetto") )
button2 = Pulsante (root, text="Chiaro", bg="#00ff00", fg="nero", comando=cancella_tutto, carattere=("ariale",13,"grassetto"))
pulsante1.griglia (riga=3, colonna=1)
button2.grid (riga=5, colonna=1)
IL ciclo principale() La funzione dice a Python di eseguire il ciclo di eventi Tkinter e di ascoltare gli eventi finché non chiudi la finestra.
root.mainloop()
Metti insieme tutto il codice e preparati a giocare a FLAMES a portata di mano.
Esempio di output del gioco FLAMES
Durante l'esecuzione del programma di cui sopra, il programma visualizza l'applicazione di gioco FLAMES con tre etichette, tre campi di immissione e due pulsanti disposti in una griglia. Inserendo i nomi "Tony Stark" e "Pepper Potts", il programma mostra il loro stato di relazione come "Love".
Giochi che puoi creare usando Python
Pygame, Arcade, Panda3D, PyOpenGL e Pyglet sono alcuni moduli utili con cui puoi creare giochi Python. Usando Pygame puoi creare giochi 2D come Super Mario Bros, Flappy Bird e Snake. Usando Arcade puoi costruire un clone di Pac-Man, Asteroids o Breakout.
Panda3D può aiutarti a creare giochi 3D come Toontown Online, Pirati dei Caraibi Online e Disney's Virtual Magic Kingdom.