Lisp Dili ile Sayı Tahmin Oyunu

Merhaba arkadaşlar, bu yazımda DrRacket ile sayı tahmin oyunu yapacağız. Eğer girilen sayı düşük ise artır, yüksek ise azalt diye ekrana bildirim veren basit bir oyun olacak.

Oyun Kodu

#lang racket
(define sayi 5)
(define hak 6)
(define dogru "Doğru bildin. İyi Tahmin!")

(define az "... ARTIR ...")
(define fazla "... AZALT ...")


(define (mesaj tahmin)
  (if (= tahmin sayi)
       dogru
       
(if (> tahmin sayi)
          fazla
          az      
       )
  )
)


(define (oyna)
  (define cıkıs null)
  (for ([i (range hak)])
    
(set! cıkıs (mesaj (read)))
    (print cıkıs)
    
(when (equal? cıkıs dogru)
        (print "Kazandın")
        
(error "Çıkış")
    )
  )
  (print "Hakkın kalmadı")
)

(oyna)

Burada biz kendimiz sayı gönderiyoruz. İlk olarak ben 5 sayısını tahmin etmek istedim. Daha sonra ise toplam kaç denemede bulma hakkını yazdım.

Eğer sonucu doğru bildiğimde ne yazacak onu ekledim.

Değerin az ve çok olmasına göre ekrana ne yazacağını giriyoruz.

Girdiğimiz değer doğruysa doğru değişkenini, az veya fazla ise ona göre diğer tanımladığımız değişkenleri çağıracaktır.

Son kısıma geldiğimizde ise haklarımız kadar döndürüyoruz. Ekrandaki değer giriş ekranını read fonksiyonu ile okuyoruz. Bunu da çıkış değerine atıyoruz. Ondan sonra çıkış’ı doğru mu diye karşılaştırıyoruz. Doğru olduğunda kazandın, hakkımız bittiğinde hakkın kalmadı deyip oyunu bitiriyoruz. Gayet basit yapısı bulunmaktadır.

[the_ad id=”441″]

Rastgele Sayıyı Bulma

Üstteki örnekte sayının elle girişini gördük. Peki bu sayı rastgele bir sayı olamaz mıydı? Tabiki olurdu. Yapılacak tek değişiklik;

(define sayi 5)

kısmını

(define sayi (random 100)) ; 0-100 arası sayılardan rastgele gelecektir.

Buna göre aşağıda oyunun oynanması ve sonucu:

DrRacket Sayı Tahmin Oyunu

Kazanamadığım bir sayı tahmin oyunu eklemiş oldum 🙂 . Umarım faydalı olmuştur.

Bunlara Göz Atmak İsteyebilirsiniz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir