Komut satırında oynayabileceğiniz basit metin oyunları harika başlangıç ​​projeleridir.

Kendi yazdığın bir oyunu oynamak ister misin? Doğru yerdesin. Adam Asmaca popüler bir kelime tahmin oyunudur ve minimum çabayla kendi versiyonunuzu oluşturabilirsiniz.

Bu oyun, Wheel of Fortune, Letterbox ve Party Time gibi popüler TV oyun programlarından ve dizilerinden tanıdık mükemmel bir eğlendiricidir. Ve Python, Adam Asmaca klonu oluşturmak için kullanmak için uygun bir dildir.

Adam Asmaca Oyunu Nasıl Oynanır?

Adam Asmaca, bir oyuncunun bir kelimeyi düşündüğü ve diğer oyuncunun sabit sayıda tahminle harfler önererek onu tahmin etmeye çalıştığı iyi bilinen bir oyundur. Bir oyuncu (bu durumda program), başlangıç ​​noktası olarak bir karakterle birlikte kelimenin her harfini temsil eden bir dizi çizgi sunar. Diğer oyuncu (veya kullanıcı), kelimede bulunan karakterleri birer birer tahmin eder.

Tahmin ettikleri harf hedef kelimede ise program tireyi karakterle doldurur. Aksi takdirde, oyuncu bir şans kaybeder ve program, çetele olarak bir çöp adam unsuru çizer. Toplam yedi şansta, kullanıcı kelimeyi doğru tahmin ederse oyunu kazanır. Değilse, program bir çöp adam çizimini tamamlar.

instagram viewer

En sevdiğiniz kelimelerin bir listesini oluşturabilir veya benzer bir tanesini indirebilirsiniz. Mieliestronk'un 58.000'den fazla İngilizce kelimeden oluşan listesi. Ayrıca diğer eğlenceli metin tabanlı oyunları da keşfedebilir ve inşa edebilirsiniz. etkileşimli bilgi yarışması oyunu veya bir metin tabanlı macera oyunu Python'da.

Adam Asmaca Oyunu Nasıl Yapılır?

Bu Adam Asmaca oyununun kaynak kodu, kelime listesi dosyasıyla birlikte bu dosyada mevcuttur. GitHub deposu ve kullanımı ücretsizdir.

içe aktar rastgele modül ve bir işlev tanımlayın, get_random_word_from_wordlist(), dosyadan rastgele bir kelime seçmek için. Metin dosyası, beğeninize bağlı olarak ortak isimler veya yer, hayvan, film ve daha fazlasını içerebilir. Dikdörtgen parantezleri kullanarak bir liste tanımlayın([]).

Kullan ile dosyayı açmak ve modu şu şekilde geçirmek için ifade 'R' salt okunur modu gösterir. Bu, hata durumlarında bile bloğun sonunda dosyayı kapatmayı otomatik olarak halleder. Eğer hangman_wordlist.txt dosyasında, her satırda bir sözcük olduğunu fark edeceksiniz, böylece dosya her sözcüğü bir yeni satır karakteriyle ayırır.

Yeni satır için kaçış karakterini iletin (\N) için bölmek() daha önce tanımladığınız listedeki her kelimeyi saklama işlevi. Kullanmak rastgele.seçim() listeden rastgele bir kelime döndürmek için.

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

Ardından, bir işlev tanımlayın, get_some_letters(), rastgele seçilen kelimeyi parametre olarak alır. Bu işlev bir dizi boş çizgi görüntüler (_) ve kullanıcıya bazı mektuplar.

Boş liste tanımla edebiyat kelimede bulunan tüm karakterleri saklamak için. Kullan sıcaklık kelimenin uzunluğuna eşit boş tire sayısını içeren bir dizeyi depolamak için değişken. Kullanmak liste() dizeyi bir karakter listesine dönüştürmek ve üzerinde yineleme yapmak için. Kullanmak ekle() Henüz mevcut değilse, karakteri listeye eklemek için.

Kullanmak rastgele.seçim() boş çizgilerle birlikte kullanıcıya sunacağınız rastgele bir karakter seçmek için. Kullanarak kelimenin karakterleri üzerinde yineleyin numaralandırmak her karakterin dizinini takip etmek için.

Rastgele seçilen karakteri bulduğunuzda, boş çizgiyi onunla değiştirin. Kullanmak katılmak() karakter listesini tam bir dizgede birleştirmek ve onu döndürmek için.

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

Bir işlev tanımlayın Draw_hangman() bu, şans sayısını bir parametre olarak alır. Bu işlev, asılı bir adam figürü sağlar. Şans sayısı azalmaya devam ettikçe, hayatta kalma şansı da artar. Tükendiğinde figür tamamlanır ve oyun biter.

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("| ")

Bir işlev bildirin, start_hangman_game(), bu programın ana mantığını tanımlar. Çağırarak rastgele bir kelime alın get_random_word_from_wordlist() işlevini kullanın ve diziyi kullanarak kullanıcıya görüntülenmesini sağlayın. get_some_letters() işlev.

Şans sayısını yedi olarak ayarlayın ve bir değişken başlatın, kurmak, yanlış olarak. Bunu şuna ayarlayacaksın: doğru tahmin edilen harf kelimede mevcutsa.

defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False

Kullanıcı kelimeyi doğru tahmin ettiğinde veya şansı tükendiğinde sona eren bir döngü bildirin. Sıralamayı, kelimedeki harf sayısını ve kalan şansı göstererek oyuna başlayın. Kullanıcıdan bir harf tahmin etmesini ve bunu kullanarak almasını isteyin. giriş() işlev. Karakterin uzunluğunu ve alfabe olup olmadığını kontrol ederek kullanıcı girişini doğrulayın.

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

Giriş geçerliyse, karakterin kelimede olup olmadığını kontrol edin ve daha önce görülen işlemi kullanarak değiştirin ve bulunan değerini güncelleyin. Karakter mevcut değilse, şans sayısını azaltın. Varsa, bulunan değerini false başlangıç ​​değerine geri çevirin.

Hiç boş çizgi kalmamışsa, kullanıcının kazandığını tahmin sayısıyla birlikte gösterin, aksi takdirde kalan şans sayısına göre adam asmaca grafiğini görüntüleyin.

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 oyununu oynamak için bir fonksiyon tanımlayın. Kullanıcı evet girerse, start_hangman_game() aksi takdirde uygun mesajla oyundan çıkın. Geçersiz giriş durumunda kullanıcıdan tekrar girmesini isteyin.

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")

Adam Asmaca Oyununun Çıktısı

Oyunu kazanırsanız aşağıdaki çıktıyı göreceksiniz:

Oyunu kaybederseniz aşağıdaki çıktıyı göreceksiniz:

Oyun Geliştirmek için Python Kullanın

Python'u hem komut satırı oyunları hem de grafik oyunlar oluşturmak için kullanabilirsiniz. Python kullanarak oluşturabileceğiniz bazı ilginç komut satırı oyunları arasında sayı tahmin oyunu, Magic 8 Ball oyunu, Mad Libs, Taş/Kağıt/Makas ve bir metin-macera oyunu yer alır.

Python ile oluşturabileceğiniz bazı eğlenceli grafik oyunlar arasında Tic Tac Toe, Maze, Snake, Pacman, Memory, Life sayılabilir. Bu oyunların en iyi yanı, onları yalnızca Python Standart Kitaplığı ile oluşturabilmenizdir.