Bu sayfada sadece şempanze hafıza oyununun (Chimp Test) p5.js ile inşasına odaklanıyoruz. Aşağıdaki örnekler, oyunu sıfırdan kurarken gereken kavramları küçük adımlarla tanıtır.
Önce kareler ve sayıları çizmeyi öğreneceğiz, ardından çakışma kontrolü, çakışmasız yerleşim, grid yaklaşımı, oyun döngüsü, zamanlama ve en sonda seviye+skora geçeceğiz.
Tuvalde n adet rastgele kare yerleştirir. Kareler tuval dışına taşmaz.
n ve s değerlerini değiştirin.noStroke(); fill(30,150,200,120);Kare merkezine sıralı sayılar yazdırır. Nasıl ortalanıyor?
(x,y) olduğundan, orta nokta (x + s/2, y + s/2).İki karenin çakışıp çakışmadığını test eder. Her çalıştırmada kareler rastgele seçilir; sonuç tuvalin üzerine yazdırılır.
function f(x, y) { return x + y; }rectsOverlap(ax, ay, aw, ah, bx, by, bw, bh) içindeki a* A dikdörtgenini, b* B dikdörtgenini tanımlar.ax + aw ≤ bxax ≥ bx + bway + ah ≤ byay ≥ by + bh!) ve çakışma sonucu bulunur.
Her yeni kareyi, önceki karelerle çakışmıyorsa ekle; aksi halde yeni koordinat dene.
let sayilar = [10, 20, 30]; — erişim: sayilar[0].sayilar.push(40).function kare(x){ return x*x; }A(ax,ay,aw,ah), B(bx,by,bw,bh) için çakışmama durumları: A sağ kenarı ≤ B sol kenarı, A sol kenarı ≥ B sağ kenarı, A alt kenarı ≤ B üst kenarı, A üst kenarı ≥ B alt kenarı. Bunlardan biri bile doğruysa çakışma yok. Değili alınırsa çakışma var testi elde edilir.n ve s ile oyna; başarısız yerleştirme için maxTry'ı artır.kare(x) fonksiyonunuzu ekleyip çağırmayı deneyin.Tuvali hücrelere böler; k adet farklı hücreyi seçip kareleri yerleştirir. shuffle kullanır.
Sayılara 5 saniye bakılır; sonra kareler gizlenir. Doğru sırayla tıklayın.
startMs = millis() ile başlangıcı kaydeder, millis() - startMs > revealMs ile süre doldu mu kontrol ederiz.Grid hücrelerinden eşsiz seçim yapar; aynı oyun akışı.
Bilgi alanını (HUD) üstte sabit bir şerit olarak ayırır, oyun tahtasını altta çizeriz. Böylece metinler karelerle çakışmaz.