Python ile program yazmak

Abdullah UYU

Hectopat
Katılım
6 Haziran 2014
Mesajlar
34
Daha fazla  
Cinsiyet
Erkek
Selamünaleyküm. Python ile uğraşıyorum. Bu süreçte bana özgü bir programcık yazmak istedim. Basit bir sayı tahmin etme oyunu var fakat bu piyasada olanlardan değil. İlk başta oyunu anlatayım ki sorun daha rahat çözülebilsin.

Oyun Hakkında

2 kişiyle ya da kendi başınıza oynayabileceğiniz bu oyun 4 basamaklı bir sayıyı tahmin etme oyunudur. Ben bu yazdığım oyunda da olduğu gibi tek kişilik olanı anlatacağım. İlk başta 4 basamaklı bir sayı belirleniyor. Ardından ilk tahmininizi yapıyorsunuz. Belirtilen sayı şu özelliklere sahip :
  1. Herhangi bir rakam tekrar etmeyecek.
  2. Aslında yazmak mantıksız gibi ama belirtmekte fayda var. Baş rakamı "0" olmayacak.
Sayı oluşturduktan sonra ilk tahmininizi yapıyorsunuz ve bir sonuç (ya da yönledirme de denilebilir.) mekanizması çalışıyor. Bu mekanizma şöyle çalışıyor:
  1. Her belirli sayı içinde bulunup da yeri tutan sayı için: +1
  2. Her belirli sayı içinde bulunup da yeri tutmayan sayı için: -1
işlemi uygulanıyor (DİKKAT! örnekte daha iyi anlayacaksınız.). Sonuç doğrultusunda oyuncu fikir sahibi olup yeni tahminler yapıyor ve sayıyı bulmaya çalışıyor.

Örnek


Örnek sayı "1453" olsun. Oyuncu "4150" tahminini yapsın. Oyuncuya (-2,+1) sonucu verilecektir.
"1" ve "4" yeri tutmayan sayılar.
"5" yeri tutan sayı.
Şimdi neden DİKKAT yazdığımı anlamışsınızdır zannediyorum.

Sorun Bunun Neresinde ?

Programcığı github da oluşturduğum bir repo ya yükledim. Aşağıya bağlantıyı yazdım. Sizi kodu inceleyip test etmeye davet ediyorum. Nedense oyuncuyu yönlendirecek olan [(-2,1), (-3,0) benzeri] kısmı oluşturamıyorum.

Github adresi xlAttractive/prediction_number_game · GitHub

Arkadaşlar sanırım sorunu çözdüm. Github daki dosyaları güncelleyeceğim. İsteyen girip bakabilir.
 
Uyarı! Bu konu 9 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı