Lisp Dili ile Klavye Kontrolü

Merhaba arkadaşlar, bu yazımda DrRacket ile yukarı yön tuşuna basıldığında ortada bulunan bir karenin büyüklüğünü 5 birim büyüten, aşağı yön tuşuna basıldığında ise 5 birim küçülten basit bir uygulama yapacağız.

Öncelikle (require 2htdp/universe) yazarak gerekli olan kütüphaneyi ekliyoruz. Bu kütüphaneyi klavyeyi okumak için kullanacağız.

Daha önce geometrik çizimlerin örneklerini anlatmıştım okumak için buraya tıklayabilirsiniz.

Direkt olarak kodunu verip daha sonra anlatımını ekleyeceğim.

(require 2htdp/universe)

(define (kareCiz n) 
  (overlay
   (square n "solid" "red")
   (empty-scene 500 500)
  )
)


(define (artirAzalt w k)
  (cond
    [(key=? k "up") (+ w 5)] ; klavye
    [(key=? k "down") (- w 5)] ;klavye
  )
)


(big-bang 5
          [to-draw kareCiz]
          [on-key artirAzalt]
)

İlk olarak kareciz isimli n parametresini alan bir fonksiyon oluşturduk.

square = kare çizmek için gerekli fonksiyon.

empty-scene ise boş bir alan oluşturmak için kullandık.

 

artirAzalt ise bir w bir de k parametresi alan bir fonksiyondur. Buradaki k klavyeden gelen yönerge, w ise karenin yeni boyutudur.

bing-bang fonksiyonu ise kütüphanemizden gelen bir fonksiyondur. Büyük patlama anlamına gelen bu fonksiyon aslında sürekli bizim oluşturduğumuz alanın güncellenmesi için kullanılmaktadır.

Buraya 5 değerini oluşturduğumuz ilk karenin kenarının 5 birimden oluşmasıdır. Daha sonra oluşturduğumuz parametreleri çağırıyoruz.

Sonuç aşağıdaki gibi olacaktır.

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