Python matris kontrol etmek

bedrhnaliakcy

Hectopat
Katılım
16 Temmuz 2018
Mesajlar
142
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Meslek
İndie software
Merhaba arkadaşlar, geçen gün oynadığım bir mobil oyundan esinlenerek yapmak istediğim bir oyun var ama sadece şöyle bir sıkıntım var.
Matrisler ile ilgili bir sorum olacak. 3x3'lük bir matris de, seçilen konumun üstünde, altında, solunda ya da sağında bulunan konumları kontrol edecek ve eğer eşit ise toplama işlemi yapacak. Şimdi ayrı ayrı yaparım ama amacım kodu minimuma indirmek. Aslında matrisler üzerinde kontrolü nasıl sağlarım? Burada olduğu gibi X'e komşu olup olmadığını nasıl kontrol ederim?

3x3'lük basit bir çizimden anlatabilirsiniz. Mantığını anlatırsanız sevinirim. Yani direkt koddan ziyade mantığını verin, gerçi onu da atsanız anlarımda neyse nasıl isterseniz artık.

Ben hızlı yapmak için Python üzerinden yapıyorum.
 
Matrix yerine tek boyutlu 2D Rectangle dizisi oluşturup, intersects metotlarıyla güzel bir şeyler ortaya çıkarabilirsin.

İntersect -> kesişmeyi kontrol eder. Kesişiyorsa komşudur.

Dizimiz Rect olsun. ilk iki parametre konumu, sonra ki iki parametre ise eni ve boyudur.

Rect[0] = 0,0, 30, 30.
Rect{1] = 30,0,30,30.
Rect{2] = 60,0,30,30.

Mesela; bir koşul girersin;

if(Rect[1].intersect(Rect[2])
{
çıktı("bunlar komşu");
}

dersin olur biter.

Python'un syntax, kütüphane ve metotlarını bilmiyorum.
 
Son düzenleme:
Matrix yerine tek boyutlu 2D Rectangle dizisi oluşturup, intersects metotlarıyla güzel bir şeyler ortaya çıkarabilirsin.

İntersect -> kesişmeyi kontrol eder. Kesişiyorsa komşudur.

Dizimiz Rect olsun. ilk iki parametre konumu, sonra ki iki parametre ise eni ve boyudur.

Rect[0] = 0,0, 30, 30.
Rect{1] = 30,0,30,30.
Rect{2] = 60,0,30,30.

Mesela; bir koşul girersin;

if(Rect[1].intersect(Rect[2])
{
çıktı("bunlar komşu");
}

dersin olur biter.

Python'un syntax, kütüphane ve metotlarını bilmiyorum.
teşekkür ederim hocam ama buradaki mantık iki kümedeki kesişimi yapıyor galiba
teşekkür ederim hocam ama buradaki mantık iki kümedeki kesişimi yapıyor galiba
buradan dediğiniz metodları inceledim, buna benzer bir sonuç buldum
 

Geri
Yukarı