SORU
3 Mayıs 2013, Cuma


Yön başlatılıyor önemi satranç programı geliştirirken aşağıda verilen değerler içeren diziler nedir?

Rekabetçi programlama yeni duyuyorum, ve sık sık, çok büyük kodlayıcıların kendi kod (özellikle dizileri içeren) bu dört satır var: fark ettim

int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 };
int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 };
int diK[] = { -2, -2, -1, 1, 2, 2, 1, -1 };
int djK[] = { -1, 1, 2, 2, 1, -1, -2, -2 };

Bu gerçekten ne anlama geliyor ve tekniği için kullanılan nedir?

CEVAP
3 Mayıs 2013, Cuma


Bu diziler - di[i],dj[i] Her çifti farklı bir yönü olduğu gibi her yöne kodlamak için bir tekniktir.

Eğer bizim hayal ettiğimiz bir şeye bir konum x,y, ve biz eklemek için üzerine x ve y değeri için hareket için yakındaki bir yer, Doğu 1,0, -1,0 Batı, Güney 0,1, 0,-1, Kuzey.

(Burada üst sol 0,0 olduğunu söyledim ve sağ alt 4,4 ve diziler her dizin Merkez noktasından yapacak ne gösterilir, X, 2,2.)

.....
.536.
.1X0.
.724.
.....

Bu şekilde ayarlama yaparsan ^1 (^ olmak bit seviyesinde XOR) dizin olsun ters yön - 0 ve 1 birbirine zıt, 2 ve 3 birbirine zıt. (Kurmak için başka bir yol Kuzey başlayarak saat yönünde gitmek için - o zaman ^4 ters yön alır.)

Şimdi test edebilirsiniz her yönden belirli bir noktadan sonra döngü içinde di dj diziler yerine ihtiyacı yazmak her yönü üzerinde kendi hattı (toplam sekiz!) (Sadece unutma kontrol sınırları :) )

diK djK tüm bitişik yönergeleri yerine knights directions tüm form. Burada, ^1 bir eksen boyunca flip, ^4 ters knight sıçrama verecektir.

.7.6.
0...5
..K..
1...4
.2.3.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007
  • hytchme

    hytchme

    9 Mart 2014
  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010