Τα απλά παιχνίδια κειμένου που μπορείτε να παίξετε στη γραμμή εντολών είναι εξαιρετικά έργα για αρχάριους.
Έχεις διάθεση να παίξεις ένα παιχνίδι που έχεις γράψει μόνος σου; Λοιπόν, είσαι στο σωστό μέρος. Το Hangman είναι ένα δημοφιλές παιχνίδι εικασίας λέξεων και μπορείτε να δημιουργήσετε τη δική σας έκδοση με ελάχιστη προσπάθεια.
Αυτό το παιχνίδι είναι ένας τέλειος διασκεδαστής, γνωστός από δημοφιλείς τηλεοπτικές εκπομπές παιχνιδιών και σειρές όπως το Wheel of Fortune, το Letterbox και το Party Time. Και η Python είναι μια βολική γλώσσα στη χρήση για τη δημιουργία ενός κλώνου Hangman.
Πώς να παίξετε το παιχνίδι Hangman
Το Hangman είναι ένα πολύ γνωστό παιχνίδι όπου ένας παίκτης σκέφτεται μια λέξη και ο άλλος παίκτης προσπαθεί να τη μαντέψει προτείνοντας γράμματα με σταθερό αριθμό εικασιών. Ένας παίκτης (σε αυτήν την περίπτωση το πρόγραμμα) παρουσιάζει μια σειρά από παύλες που αντιπροσωπεύουν κάθε γράμμα της λέξης, μαζί με έναν χαρακτήρα ως σημείο εκκίνησης. Ο άλλος παίκτης (ή χρήστης) μαντεύει τους χαρακτήρες που υπάρχουν στη λέξη, έναν προς έναν.
Εάν το γράμμα που μαντεύουν είναι στη λέξη-στόχο, το πρόγραμμα γεμίζει την παύλα με τον χαρακτήρα. Διαφορετικά, ο παίκτης χάνει μία ευκαιρία και το πρόγραμμα τραβάει ένα στοιχείο μιας φιγούρας ραβδί ως απολογισμό. Σε συνολικά επτά ευκαιρίες, αν ο χρήστης μαντέψει σωστά τη λέξη, κερδίζει το παιχνίδι. Αν όχι, το πρόγραμμα ολοκληρώνει τη ζωγραφική του ενός ραβδί.
Μπορείτε να δημιουργήσετε μια λίστα με τις αγαπημένες σας λέξεις ή να κάνετε λήψη ενός like Η λίστα του Mieliestronk με περισσότερες από 58.000 αγγλικές λέξεις. Μπορείτε επίσης να εξερευνήσετε και να δημιουργήσετε άλλα διασκεδαστικά παιχνίδια που βασίζονται σε κείμενο, όπως ένα διαδραστικό παιχνίδι κουίζ ή α παιχνίδι περιπέτειας βασισμένο σε κείμενο στην Python.
Πώς να φτιάξετε το παιχνίδι Κρεμάλα
Ο πηγαίος κώδικας αυτού του παιχνιδιού Hangman, μαζί με το αρχείο λίστας λέξεων, υπάρχει σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση.
Εισαγάγετε το τυχαίος ενότητα και ορίστε μια συνάρτηση, get_random_word_from_wordlist(), για να επιλέξετε μια τυχαία λέξη από το αρχείο. Το αρχείο κειμένου μπορεί να περιέχει κοινά ουσιαστικά ή ονόματα τοποθεσιών, ζώων, ταινιών και άλλα με βάση τις προτιμήσεις σας. Ορίστε μια λίστα χρησιμοποιώντας τις ορθογώνιες αγκύλες([]).
Χρησιμοποιήστε το με δήλωση για να ανοίξετε το αρχείο και να περάσετε τη λειτουργία ως 'ρ' που δείχνει τη λειτουργία μόνο για ανάγνωση. Αυτό φροντίζει αυτόματα να κλείνει το αρχείο στο τέλος του μπλοκ ακόμα και σε περιπτώσεις σφαλμάτων. Αν δείτε το hangman_wordlist.txt αρχείο, θα παρατηρήσετε ότι υπάρχει μία λέξη σε κάθε γραμμή, επομένως το αρχείο διαχωρίζει κάθε λέξη με έναν χαρακτήρα νέας γραμμής.
Περάστε τον χαρακτήρα διαφυγής για μια νέα γραμμή (\n) στο διαίρεση() λειτουργία για αποθήκευση κάθε λέξης στη λίστα που ορίσατε προηγουμένως. Χρήση random.choice() για να επιστρέψετε μια τυχαία λέξη από τη λίστα.
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
Στη συνέχεια, ορίστε μια συνάρτηση, get_some_letters(), που παίρνει την τυχαία επιλεγμένη λέξη ως παράμετρο. Αυτή η λειτουργία θα εμφανίσει μια σειρά από κενές παύλες (_) και μερικά γράμματα προς τον χρήστη.
Ορίστε κενή λίστα γράμματα για να αποθηκεύσετε όλους τους χαρακτήρες που υπάρχουν στη λέξη. Χρησιμοποιήστε το θερμοκρασία μεταβλητή για την αποθήκευση μιας συμβολοσειράς που περιέχει τον αριθμό των κενών παύλων που ισούται με το μήκος της λέξης. Χρήση λίστα() για να μετατρέψετε τη συμβολοσειρά σε μια λίστα χαρακτήρων και να την επαναλάβετε. Χρήση προσαρτώ() για να προσθέσετε τον χαρακτήρα στη λίστα εάν δεν υπάρχει ήδη.
Χρήση random.choice() για να επιλέξετε έναν τυχαίο χαρακτήρα που θα παρουσιάσετε στον χρήστη μαζί με τις κενές παύλες. Επαναλάβετε τους χαρακτήρες της λέξης χρησιμοποιώντας απαριθμώ για να παρακολουθείτε το ευρετήριο κάθε χαρακτήρα.
Όταν βρείτε τον τυχαία επιλεγμένο χαρακτήρα, αντικαταστήστε την κενή παύλα με αυτόν. Χρήση Συμμετοχή() για να ενοποιήσετε τη λίστα χαρακτήρων σε μια πλήρη συμβολοσειρά και να την επιστρέψετε.
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
Ορίστε μια συνάρτηση draw_hangman() που παίρνει τον αριθμό των ευκαιριών ως παράμετρο. Αυτή η λειτουργία παρέχει μια φιγούρα του κρεμασμένου άνδρα. Καθώς ο αριθμός των πιθανοτήτων συνεχίζει να μειώνεται, τόσο μειώνονται οι πιθανότητες επιβίωσης. Όταν εξαντληθεί, η φιγούρα ολοκληρώνεται και το παιχνίδι τελειώνει.
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("| ")
Δηλώστε μια συνάρτηση, start_hangman_game(), που ορίζει την κύρια λογική του προγράμματος. Λάβετε μια τυχαία λέξη καλώντας το get_random_word_from_wordlist() λειτουργία και λάβετε τη σειρά που θα εμφανίζεται στον χρήστη χρησιμοποιώντας το get_some_letters() λειτουργία.
Ορίστε τον αριθμό των ευκαιριών σε επτά και αρχικοποιήστε μια μεταβλητή, βρέθηκαν, ως ψευδής. Θα το ρυθμίσετε σε αληθής αν το μαντέψιμο γράμμα υπάρχει στη λέξη.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
Δηλώστε έναν βρόχο που τερματίζεται όταν ο χρήστης μαντέψει σωστά τη λέξη ή όταν εξαντληθούν οι πιθανότητες. Ξεκινήστε το παιχνίδι εμφανίζοντας τη σειρά, τον αριθμό των γραμμάτων στη λέξη και τις πιθανότητες που απομένουν. Ζητήστε από τον χρήστη να μαντέψει ένα γράμμα και να το λάβει χρησιμοποιώντας το εισαγωγή() λειτουργία. Επικυρώστε την είσοδο του χρήστη ελέγχοντας το μήκος του χαρακτήρα και αν είναι αλφάβητο.
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
Εάν η είσοδος είναι έγκυρη, ελέγξτε εάν ο χαρακτήρας υπάρχει στη λέξη και αντικαταστήστε τον χρησιμοποιώντας τη διαδικασία που είδαμε προηγουμένως και ενημερώστε την τιμή του που βρέθηκε. Εάν ο χαρακτήρας δεν είναι παρών, μειώστε τον αριθμό των πιθανοτήτων. Εάν υπάρχει, γυρίστε την τιμή του found στην αρχική τιμή false.
Εάν δεν έχουν απομείνει κενές παύλες, εμφανίστε ότι ο χρήστης κέρδισε μαζί με τον αριθμό των εικασιών που έγιναν, διαφορετικά εμφανίστε το γραφικό του δήμιου σύμφωνα με τον αριθμό των πιθανοτήτων που απομένουν.
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()
Ορίστε μια συνάρτηση για να παίξετε το παιχνίδι Hangman. Εάν ο χρήστης εισάγει ναι καλέστε το start_hangman_game() λειτουργία διαφορετικά κλείστε το παιχνίδι με το κατάλληλο μήνυμα. Σε περίπτωση μη έγκυρης εισαγωγής, ζητήστε από τον χρήστη να εισέλθει ξανά.
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")
The Output of the Hangman Game
Αν κερδίσετε το παιχνίδι, θα δείτε την ακόλουθη έξοδο:
Αν χάσετε το παιχνίδι, θα δείτε την ακόλουθη έξοδο:
Χρησιμοποιήστε την Python για να δημιουργήσετε παιχνίδια
Μπορείτε να χρησιμοποιήσετε την Python για να δημιουργήσετε παιχνίδια γραμμής εντολών καθώς και παιχνίδια γραφικών. Μερικά ενδιαφέροντα παιχνίδια γραμμής εντολών που μπορείτε να δημιουργήσετε χρησιμοποιώντας την Python περιλαμβάνουν το παιχνίδι εικασίας αριθμών, το παιχνίδι Magic 8 Ball, το Mad Libs, το Rock/Paper/Scissors και ένα παιχνίδι περιπέτειας κειμένου.
Μερικά διασκεδαστικά παιχνίδια γραφικών που μπορείτε να δημιουργήσετε με τον python περιλαμβάνουν τα Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. Το καλύτερο μέρος αυτών των παιχνιδιών είναι ότι μπορείτε να τα δημιουργήσετε μόνο με την Standard Library Python.