• WhatsApp - 0344-222-20-21
  • 0344-222-20-21
  • SSS
Dijigo teknoloji header logo images
  • Ana Sayfa
  • Hakkımızda
  • Kurslar
  • İletişim
Giriş Yap
Hemen Kaydol!
Dijigo teknoloji mobil logo

Online Eğitim Platformu

  • WhatsApp
  • (344) 222-20-21
  • Başlangıç
  • Hakkımızda
  • Kurslar
  • İletişim
Giriş Yap
Ücretsiz Deneme Dersi!
Bizi Takip Edin
Education Images

Python Sayı Tahmin Oyunu: Beş Haklı İlk Projeniz

Python sayı tahmin oyunu yapın: beş hak, büyük-küçük ipuçları ve hatalı giriş kontrolü. Hazır kodu çalıştırın, adım adım açıklamalarla oyununuzu geliştirin.

Ekranı kendisine dönük bir dizüstü bilgisayarda çalışan öğrenci, beş soru işaretli jeton ve büyük-küçük ipuçlarını simgeleyen okların illüstrasyonu.
Python sayı tahmin oyunu için hazırlanmış illüstrasyon.

Python sayı tahmin oyunu yapmak için bilgisayara bir sayı seçtirip oyuncunun tahminini bu sayıyla karşılaştıracağız. Oyuncu küçük bir sayı yazarsa “daha büyük”, büyük bir sayı yazarsa “daha küçük” ipucu alacak. Beş geçerli tahminde doğru sayıyı bulursa kazanacak; hakları biterse gizli sayı gösterilecek.

Bu rehber, print() ve değişkenlerle tanışmış, ilk etkileşimli oyununu yazmak isteyen öğrenciler için. Henüz bu kavramları görmediyseniz önce Python’a giriş yazısını okuyabilirsiniz. Çalışmanın sonunda klavyeden giriş alan, karar veren ve gerektiğinde aynı işlemi tekrarlayan bir programınız olacak.

Python sayı tahmin oyunu için ne gerekiyor?

Bilgisayarınızda Python 3 ve bir Python düzenleyicisi bulunmalı. Aşağıda IDLE üzerinden ilerliyoruz. Python yüklü değilse veliniz veya öğretmeninizle birlikte Python’ın resmi indirme sayfasından işletim sisteminize uygun kurulumu yapın. IDLE kurulumunuzda görünmüyorsa dağıtımın kurulum seçeneklerini kontrol edin.

Bu proje ek kütüphane, robot kartı, ücretli uygulama veya çevrimiçi hesap gerektirmez. Kod bilgisayarınızda çalışır; ad, okul veya başka bir kişisel bilgi girmenize gerek yoktur.

1. Oyunun kurallarını önce yazın

Bir sayı tahmin oyunu farklı kurallarla hazırlanabilir. Biz şu sürümü yapacağız:

  • Bilgisayar 1 ve 20 dahil bu aralıktan bir tam sayı seçer.
  • Gizli sayı tur boyunca değişmez.
  • Oyuncunun beş geçerli tahmin hakkı vardır. Aynı sayıyı yeniden tahmin etmek de bir hak kullanır.
  • Harf, boş giriş, ondalıklı sayı ve aralık dışı sayılar hak düşürmez; yeniden giriş istenir.
  • Doğru tahminde oyun hemen biter. Beşinci tahmin de doğruysa oyuncu kazanır.

Örneğin gizli sayı 12 ise 8 için “daha büyük”, 16 için “daha küçük” yanıtı gerekir. Bu iki ipucundan sonra rastgele bir sayı söylemek yerine kalan aralığı düşünün.

2. Dosyayı oluşturup kodu çalıştırın

IDLE’ı açın. File → New File ile yeni bir düzenleme penceresi oluşturun. Kodun tamamını bu pencereye yazın veya kopyalayın; satır başındaki boşlukları koruyun. Dosyayı sayi_tahmin.py adıyla kaydedin.

Dosyanızın adını random.py yapmayın: Bu ad, birazdan kullanacağımız Python modülünün adıyla çakışabilir.

import random

gizli_sayi = random.randint(1, 20)
kalan_hak = 5

print("1 ile 20 arasında bir sayı tuttum. 5 hakkın var.")

while kalan_hak > 0:
    try:
        tahmin = int(input("Tahminin: "))
    except ValueError:
        print("Lütfen tam sayı yaz; örneğin 7.")
        continue

    if not 1 <= tahmin <= 20:
        print("1 ile 20 arasında bir sayı yaz.")
        continue

    kalan_hak -= 1

    if tahmin == gizli_sayi:
        print("Bildin! Kalan hak:", kalan_hak)
        break
    elif tahmin < gizli_sayi:
        print("Daha büyük bir sayı dene.")
    else:
        print("Daha küçük bir sayı dene.")

    print("Kalan hak:", kalan_hak)
else:
    print("Hakların bitti. Gizli sayı:", gizli_sayi)

Run → Run Module seçeneğiyle programı başlatın. Açılan Shell penceresinde Tahminin: yazısının yanına bir sayı yazıp Enter’a basın. Sonraki tahmini de aynı alana girin. Yeni tur için dosyayı yeniden çalıştırın. Menülerin açıklamaları Python’ın resmi IDLE belgesinde yer alıyor.

3. Kodun oyun kurallarını nasıl uyguladığını anlayın

random.randint(1, 20), iki sınır da dahil olacak şekilde bir tam sayı seçer. Bu satırın döngünün dışında olması önemli: Her tahminden sonra yeniden sayı seçerse oyuncu sürekli değişen bir hedefi arar. Ayrıntı için randint() belgesine bakabilirsiniz.

input() klavyeden yazılanı metin olarak alır; int() bu metni tam sayıya dönüştürür. Örneğin 7 dönüştürülebilir ama merhaba veya 2.5 tam sayı girdisi değildir. try/except ValueError bölümü dönüşüm başarısız olduğunda uyarı gösterir. Bu işlevler Python’ın yerleşik işlevler belgesinde açıklanıyor.

continue, o denemede alttaki işlemleri atlayıp döngünün başına döner. Hem dönüşüm hem de aralık kontrolü, kalan_hak -= 1 satırından önce gelir. Bu yüzden geçersiz girişlerde hak azalmaz. -= 1, mevcut sayıdan bir çıkarıp sonucu aynı değişkene kaydeder.

while kalan_hak > 0, hak bulunduğu sürece yeni tahmin ister. if / elif / else ise eşit, küçük veya büyük olma durumlarından uygun olanı seçer. Doğru tahminde break döngüyü bitirir.

En alttaki else, while ile aynı hizadadır; karşılaştırmaya ait değildir. Döngü, hak kalmadığı için normal biçimde sona ererse bu bölüm çalışır. Doğru tahminde break kullanıldığı için çalışmaz. Böylece son hakta doğru bilen oyuncuya “hakların bitti” mesajı gösterilmez. Bu yapıların açıklamalarını Python’ın kontrol akışı rehberinde bulabilirsiniz.

4. Rastgeleliği geçici olarak kaldırıp oyunu sınayın

Oyunun açılması, bütün kuralların doğru çalıştığını göstermez. Deneme sırasında sonucu önceden bilmek için gizli_sayi = random.randint(1, 20) satırını geçici olarak gizli_sayi = 12 yapın. Kaydedin ve her deneme için programı yeniden başlatın.

  1. İlk tahminde kazanma: 12 yazın. “Bildin! Kalan hak: 4” görünmeli ve yeni tahmin istenmemeli.
  2. İpuçları: Sırayla 8, 16, 12 yazın. Önce “daha büyük”, sonra “daha küçük”, sonunda kazanma mesajı görünmeli.
  3. Son hakta kazanma: 1, 2, 3, 4, 12 sayılarını sırayla girin. Kalan hak 0 olsa da kazanmalısınız; kaybetme mesajı çıkmamalı.
  4. Hakların tükenmesi: 1, 2, 3, 4, 5 girin. Beşinci yanlış tahminden sonra gizli sayı 12 açıklanmalı; altıncı tahmin istenmemeli.
  5. Geçersiz giriş: Bir harf, 2.5, boş giriş, 0 ve 21 deneyin; ardından 12 yazın. Her geçersiz girişte uyarı, sonunda “Kalan hak: 4” görünmeli.

Kontroller bitince sabit 12’yi kaldırıp random.randint(1, 20) satırını geri koyun. Rastgele seçim aynı sayıyı art arda üretebilir; iki turda aynı sonucu görmek tek başına hata değildir.

Oyun çalışmıyorsa nereden başlamalısınız?

Girinti hatası görüyorsanız: while, try ve koşulların altındaki satırların yerlerini örnekle karşılaştırın. Python’da girinti, hangi işlemin hangi bölüme ait olduğunu belirler. Örnekte her seviye için dört boşluk kullanılıyor.

Harf yazınca program kapanıyorsa: int(input(...)) satırının try içinde, except ValueError satırının da try ile aynı hizada olduğunu kontrol edin.

Doğru tahminde iki bitiş mesajı görünüyorsa: break satırını ve son else bölümünün girintisini kontrol edin. “Hakların bitti” mesajını döngü bittikten sonra koşulsuz yazdırmak, kazanan oyuncuya da gösterir.

5. Tek bir kuralı değiştirin

Oyunu üç haklı yapın. Hem kalan_hak = 5 satırını hem de başlangıç mesajını değiştirin. Test için gizli sayıyı yeniden 12 yapıp 1, 2, 12 ve ayrı turda 1, 2, 3 girişlerini deneyin. İlki kazanmalı, ikincisi hakların bitmesiyle sona ermeli.

Son olarak şu soruyu yanıtlayın: “Hak azaltma satırını giriş kontrollerinin üstüne taşırsam harf yazan oyuncunun hakkı neden azalır?” Yanıtınızı kodu göstererek açıklayabiliyorsanız yalnızca oyunu çalıştırmış değil, akışını da anlamışsınız demektir.

Bir sonraki çalışmada kullanıcı girdisini başka bir kurala dönüştürmek için Python puan hesaplayıcı örneğini inceleyebilirsiniz. Eğitmenle ilerlemek isterseniz velinizle birlikte DijiGO Online Python Eğitimi’nin içeriğine bakıp seviyenize uygun başlangıcı sorabilirsiniz.

projepython
Proje 24 Ekim 2026
0 Beğeni
  • X
Sizin için seçilenler

Benzer yazılar

Arduino 8X8 Led Matrix Telefon ile Kontrolu
Arduino 8X8 Led Matrix Telefon ile Kontrolu
Devamı
HTML ile Web Sayfası Yapma: İlk Dosyanızı Oluşturun
HTML ile Web Sayfası Yapma: İlk Dosyanızı Oluşturun
Devamı
Akıllı Çöp Kutusu
Akıllı Çöp Kutusu
Devamı

Web sitenizdeki çerezlerle ilgili politikalarınızı, gizlilik politikanızı ve kullanım şartlarını okudum ve kabul ediyorum.

DijiGO teknoloji footer logo images

DijiGO Teknoloji, 2019'dan bu yana çocuklara ve gençlere tamamen çevrimiçi robotik kodlama, yapay zeka, yazılım ve 3D tasarım eğitimleri veren bir online eğitim platformudur.

Diğer Sitelerimiz

  • DijiGO Tech

Menü

  • Ana Sayfa
  • Hakkımızda
  • DijiGO Eğitmeni Olun
  • Kurslar
  • Blog
  • Sık Sorulan Sorular
  • İletişim

Bizimle iletişime geçin!

  • Telefon: (344) 222-20-21
  • E-mail: destek@dijigo.net
Ücretsiz deneme dersine katıl!

Copyright © 2019 DijiGO Teknoloji

  • Kullanım Şartları
  • Gizlilik politikası
  • Çerez Politikası
  • YouTube Gizlilik Politikası
  • YouTube Kullanım Şartları
  • Pinterest Gizlilik Politikası
WhatsApp Destek