I semplici giochi di testo che puoi giocare sulla riga di comando sono ottimi progetti per principianti.
Sei dell'umore giusto per giocare a un gioco che hai scritto tu stesso? Bene, sei nel posto giusto. L'impiccato è un popolare gioco di indovinelli di parole e puoi creare la tua versione con il minimo sforzo.
Questo gioco è un perfetto intrattenitore, familiare dai famosi giochi televisivi e serie come Wheel of Fortune, Letterbox e Party Time. E Python è un linguaggio conveniente da usare per costruire un clone di Hangman.
Come giocare al gioco dell'impiccato
L'impiccato è un noto gioco in cui un giocatore pensa a una parola e l'altro cerca di indovinarla suggerendo lettere con un numero fisso di tentativi. Un giocatore (in questo caso il programma) presenta una sequenza di trattini che rappresentano ogni lettera della parola, insieme a un carattere come punto di partenza. L'altro giocatore (o utente) indovina i caratteri presenti nella parola, uno per uno.
Se la lettera che indovinano è nella parola di destinazione, il programma riempie il trattino con il carattere. Altrimenti, il giocatore perde una possibilità e il programma disegna un elemento di una figura stilizzata come conteggio. In un totale di sette possibilità, se l'utente indovina la parola correttamente, vince la partita. In caso contrario, il programma completa il disegno di un uomo stilizzato.
Puoi creare un elenco delle tue parole preferite o scaricarne una simile L'elenco di Mieliestronk di oltre 58.000 parole inglesi. Puoi anche esplorare e costruire altri divertenti giochi basati su testo come un gioco a quiz interattivo o un gioco di avventura basato su testo in Python.
Come costruire il gioco dell'impiccato
Il codice sorgente di questo gioco dell'impiccato, insieme al file dell'elenco delle parole, è presente in questo Deposito GitHub ed è gratuito da usare.
Importa il casuale modulo e definire una funzione, get_random_word_from_wordlist(), per scegliere una parola a caso dal file. Il file di testo può contenere nomi comuni o nomi di luoghi, animali, film e altro in base alle tue preferenze. Definisci una lista usando le parentesi quadre([]).
Usa il con istruzione per aprire il file e passare la modalità come 'R' che indica la modalità di sola lettura. Questo si occupa automaticamente di chiudere il file alla fine del blocco anche in caso di errori. Se visualizzi il hangman_wordlist.txt file, noterai che c'è una parola presente su ogni riga, quindi il file separa ogni parola con un carattere di nuova riga.
Passa il carattere di escape per una nuova riga (\N) al diviso() funzione per memorizzare ogni parola nell'elenco definito in precedenza. Utilizzo scelta.casuale() per restituire una parola casuale dall'elenco.
import random
defget_random_word_from_wordlist():
wordlist = []
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
word = random.choice(wordlist)
return word
Quindi, definisci una funzione, prendi_alcune_lettere(), che prende la parola selezionata a caso come parametro. Questa funzione visualizzerà una sequenza di trattini vuoti (_) e alcune lettere all'utente.
Definisci lista vuota lettere per memorizzare tutti i caratteri presenti nella parola. Usa il temp variabile per memorizzare una stringa che contiene il numero di trattini vuoti pari alla lunghezza della parola. Utilizzo elenco() per convertire la stringa in un elenco di caratteri e scorrere su di essa. Utilizzo aggiungere() per aggiungere il personaggio alla lista se non già presente.
Utilizzo scelta.casuale() per scegliere un carattere casuale che presenterai all'utente insieme ai trattini vuoti. Iterare sui caratteri della parola using enumerare per tenere traccia dell'indice di ogni carattere.
Quando trovi il carattere selezionato a caso, sostituisci il trattino vuoto con esso. Utilizzo giuntura() per unificare l'elenco di caratteri in una stringa completa e restituirlo.
defget_some_letters(word):
letters = []
temp = '_' * len(word)
for char in list(word):
ifchar not in letters:
letters.append(char)
character = random.choice(letters)
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
return temp
Definire una funzione disegna_impiccato() che prende il numero di possibilità come parametro. Questa funzione fornisce una figura dell'impiccato. Man mano che il numero di possibilità continua a diminuire, diminuiscono anche le possibilità di sopravvivenza. Quando è esaurito, la figura è completa e il gioco finisce.
defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")
Dichiara una funzione, inizio_gioco_dell'impiccato(), che definisce la logica principale del programma. Ottieni una parola a caso chiamando il get_random_word_from_wordlist() funzione e ottenere la sequenza da visualizzare all'utente utilizzando il prendi_alcune_lettere() funzione.
Imposta il numero di possibilità su sette e inizializza una variabile, trovato, come falso. Lo imposterai su VERO se la lettera indovinata è presente nella parola.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
Dichiara un ciclo che termina quando l'utente indovina la parola correttamente o esaurisce le possibilità. Inizia il gioco visualizzando la sequenza, il numero di lettere nella parola e le possibilità rimaste. Chiedi all'utente di indovinare una lettera e riceverla utilizzando il ingresso() funzione. Convalida l'input dell'utente controllando la lunghezza del carattere e se si tratta di un alfabeto.
whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue
Se l'input è valido, controlla se il carattere è presente nella parola e sostituiscilo utilizzando il processo visto in precedenza e aggiorna il valore di found. Se il personaggio non è presente diminuire il numero di possibilità. Se presente, riporta il valore di found al valore iniziale false.
Se non sono rimasti trattini vuoti, mostra che l'utente ha vinto insieme al numero di tentativi presi, altrimenti mostra il grafico dell'impiccato in base al numero di possibilità rimaste.
else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
if found:
found = False
else:
chances -= 1
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
print()
Definire una funzione per giocare al gioco dell'impiccato. Se l'utente immette sì, chiama il inizio_gioco_dell'impiccato() funzione altrimenti esci dal gioco con l'apposito messaggio. In caso di inserimento non valido chiedere all'utente di inserirlo nuovamente.
print(" Welcome to the Hangman Game ")
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
print("\n")
L'uscita del gioco dell'impiccato
Vedrai il seguente output se vinci la partita:
Vedrai il seguente output se perdi la partita:
Usa Python per creare giochi
Puoi usare Python per creare giochi da riga di comando e giochi grafici. Alcuni interessanti giochi da riga di comando che puoi creare usando Python includono il gioco di indovinare i numeri, il gioco Magic 8 Ball, Mad Libs, Rock/Paper/Scissors e un gioco di avventura testuale.
Alcuni giochi grafici divertenti che potresti creare con Python includono Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. La parte migliore di questi giochi è che puoi crearli solo con la Python Standard Library.