5.00 / 1 oy

Python ile adam asmaca oyunu uygulaması geliştirmek

bu yazıda da Python ile adam asmaca oyununun konsol versiyonunu nasıl geliştirebileceğimize bakalım ve ilkel bir adam asmaca oyunu geliştirelim. Programda çözmemiz gereken problemler şunlar:

- Bir kelimeler listesine ihtiyacımız var ve program her çalıştırıldığında bu listeden rastgele olarak birisini seçerek değiştirmeli. Örnek olarak listeye 10 adet film yazalım ve kullanıcıya bu filmin adını bulmasını söyleyelim

- Başlangıçta kullanıcıya haç harften oluşan bir film olduğunu göstermek için alt çizgilerden oluşan bir alan gösterelimç. Örneğin matrix filmi 6 harfli bir film olduğu için ______ şeklinde 6 adet alt çizgi karakteri gösterelim ki tahmin edeceği film hakkında bir fikri olsun.

- Adam asmaca oyununun eğlenceli kısmı, her yanlış cevapta asılan adam figürüdür. kullanıcıya 10 hak verelim ve her yanlış cevabında (kelimede olmayan bir kelime yazmış olması) kalan hakkını azaltalım ve yazdıktan sonra adam asmaca figürünü konsolda ilkel bir şekilde çizgilerle benzetelim

- Kullanıcı her tahmin hakkında tek bir harf yazabilir. Önce yazdığı harfin doğru bir harf olup olmadığını kontrol edelim (geçerli harfler listesi olacak), sonra da fim adında bu harfin olup olmadığını kontrol edelim. var ise alt çizgide ilgili yere o harfi yazalım. örneğin matrix için a harfini yazdı ise _a____ şeklinde gösterdiğimiz kelimeyi güncelleyelim ve her yeni kelime bulduğunda da güncelleyelim

- Kullanıcı soruyu doğru bildiğinde (harf tahminleri ile hakkı dolmadan filmin adını tamamen yazdığında) de tebrik edelim

Python Kodları:

import random
def adamas():

    kelimeler = random.choice(["terminator" , "avengers" , "matrix" , "tenet" , "jumanji" , "shazam" , "lucy" , "deadpool" , "kingsman" , "transformers" ])
    gecerliHarfler = 'abcdefghijklmnopqrstuvwxyz'
    toplamHak = 10
    yapilanTahmin = ''

    while len(kelimeler) > 0:
        asilKelime = ""
        hataliTahminSayisi = 0

        for harf in kelimeler:
            if harf in yapilanTahmin:
                asilKelime = asilKelime + harf
            else:
                asilKelime = asilKelime + "_" + " "
        if asilKelime == kelimeler:
            print(asilKelime)
            print("Tebrikler kazandınız")
            break

        print("Filmin adını tahmin edin:" , asilKelime)
        tahmin = input()

        if tahmin in gecerliHarfler:
            yapilanTahmin = yapilanTahmin + tahmin
        else:
            print("girdiğiniz harfi kontrol edin")
            tahmin = input()

        if tahmin not in kelimeler:
            toplamHak = toplamHak - 1
            if toplamHak == 9:
                print("9 hakkınız kaldı")
                print("  --------  ")
            if toplamHak == 8:
                print("8 hakkınız kaldı")
                print("  --------  ")
                print("     O      ")
            if toplamHak == 7:
                print("7 hakkınız kaldı")
                print("  --------  ")
                print("     O      ")
                print("     |      ")
            if toplamHak == 6:
                print("6 hakkınız kaldı")
                print("  --------  ")
                print("     O      ")
                print("     |      ")
                print("    /       ")
            if toplamHak == 5:
                print("5 hakkınız kaldı")
                print("  --------  ")
                print("     O      ")
                print("     |      ")
                print("    / \     ")
            if toplamHak == 4:
                print("4 hakkınız kaldı")
                print("  --------  ")
                print("   \ O      ")
                print("     |      ")
                print("    / \     ")
            if toplamHak == 3:
                print("3 hakkınız kaldı")
                print("  --------  ")
                print("   \ O /    ")
                print("     |      ")
                print("    / \     ")
            if toplamHak == 2:
                print("2 hakkınız kaldı")
                print("  --------  ")
                print("   \ O /|   ")
                print("     |      ")
                print("    / \     ")
            if toplamHak == 1:
                print("1 hakkınız kaldı")
                print("Dikkatli kullanın")
                print("  --------  ")
                print("   \ O_|/   ")
                print("     |      ")
                print("    / \     ")
            if toplamHak == 0:
                print("Oyun bitti")
                print("bilemediniz ve kaybettiniz")
                print("  --------  ")
                print("     O_|    ")
                print("    /|\      ")
                print("    / \     ")
                break


print("Filmin adını bulabilmek için 10 hakkınız var")
adamas()
print()

Oynanış 1:

Filmin adını bulabilmek için 10 hakkınız var
Filmin adını tahmin edin: _ _ _ _ _ _ _ _ _ _ _ _ 
a
Filmin adını tahmin edin: _ _ a_ _ _ _ _ _ _ _ _ 
e
Filmin adını tahmin edin: _ _ a_ _ _ _ _ _ e_ _ 
i
9 hakkınız kaldı
  --------  
Filmin adını tahmin edin: _ _ a_ _ _ _ _ _ e_ _ 
o
Filmin adını tahmin edin: _ _ a_ _ _ o_ _ e_ _ 
c
8 hakkınız kaldı
  --------  
     O      
Filmin adını tahmin edin: _ _ a_ _ _ o_ _ e_ _ 
g
7 hakkınız kaldı
  --------  
     O      
     |      
Filmin adını tahmin edin: _ _ a_ _ _ o_ _ e_ _ 
t
Filmin adını tahmin edin: t_ a_ _ _ o_ _ e_ _ 
m
Filmin adını tahmin edin: t_ a_ _ _ o_ me_ _ 
h
6 hakkınız kaldı
  --------  
     O      
     |      
    /       
Filmin adını tahmin edin: t_ a_ _ _ o_ me_ _ 
f
Filmin adını tahmin edin: t_ a_ _ fo_ me_ _ 
d
5 hakkınız kaldı
  --------  
     O      
     |      
    / \     
Filmin adını tahmin edin: t_ a_ _ fo_ me_ _ 
s
Filmin adını tahmin edin: t_ a_ sfo_ me_ s
b
4 hakkınız kaldı
  --------  
   \ O      
     |      
    / \     
Filmin adını tahmin edin: t_ a_ sfo_ me_ s
z
3 hakkınız kaldı
  --------  
   \ O /    
     |      
    / \     
Filmin adını tahmin edin: t_ a_ sfo_ me_ s
x
2 hakkınız kaldı
  --------  
   \ O /|   
     |      
    / \     
Filmin adını tahmin edin: t_ a_ sfo_ me_ s
v
1 hakkınız kaldı
Dikkatli kullanın
  --------  
   \ O_|/   
     |      
    / \     
Filmin adını tahmin edin: t_ a_ sfo_ me_ s
p
Oyun bitti
bilemediniz ve kaybettiniz
  --------  
     O_|    
    /|\      
    / \  

 

Oynanış 2:

Filmin adını bulabilmek için 10 hakkınız var
Filmin adını tahmin edin: _ _ _ _ _ _ _ 
a
Filmin adını tahmin edin: _ _ _ a_ _ _ 
e
9 hakkınız kaldı
  --------  
Filmin adını tahmin edin: _ _ _ a_ _ _ 
i
Filmin adını tahmin edin: _ _ _ a_ _ i
j
Filmin adını tahmin edin: j_ _ a_ ji
u
Filmin adını tahmin edin: ju_ a_ ji
m
Filmin adını tahmin edin: juma_ ji
n
jumanji
Tebrikler kazandınız

 

Editör editi: sitedeki bazı diğer benzer yazılar için;

bkz: Python ile rastgele kelime seçmek ve cümle oluşturmak

bkz: Python ile rastgele harf seçmek

bkz: Python ile listeden rastgele seçim yapmak

bkz: Python ile rastgele zar atma örnekleri

bkz: Python ile Rastgele Sayı Üretmek

bkz: Python ile İki Sayı Arasında Rastgele Sayı Üretmek

m.cengiz

01.07.2021 18:11

Bu soru 1 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Python ile adam asmaca oyunu uygulaması geliştirmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.