26.07.2017 Views

bilgeadam-c-kitabi

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

BÖLÜM 1: 21<br />

Hareket Alanı<br />

if (sonuc == 1)<br />

{<br />

tahta[ a, b ] = true;<br />

}<br />

else<br />

{<br />

tahta[ a, b ] = true;<br />

}<br />

}<br />

}<br />

Tahta üzerindeki bir fil, dört çapraz yöne doğru ilerleyebilir. Dizide çapraz olarak<br />

ilerlemek x ve y koordinatlarının eşit oranda artması ve azalması demektir.<br />

Dizide ilerlerken x ve y koordinatlarının sıfırdan küçük ve dizinin boyutundan<br />

büyük olmamasına dikkat edilmelidir. Dört farklı yöne göre, koordinatlar artacak<br />

ya da azalacaktır.<br />

1. Fili tahta üzerine yerleştirmek için kullanıcıdan koordinatları alın.<br />

byte x = byte.Parse( txtFilinXKoordinati.Text ) ;<br />

byte y = byte.Parse( txtFilinYKoordinati.Text ) ;<br />

2. 0, 0 yönüne doğru olan yoldaki taşların kontrolünü yapın. Filin x ve y<br />

koordinatlarını birer düşürerek, koordinatlarda taş var mı yok mu kontrol<br />

edilir. Eğer taş yoksa bu kareye ilerlenebildiğini, lbHareketAlani liste<br />

kutusuna koordinat eklenerek gösterilir. Yol üzerinde bir taş varsa, daha<br />

fazla ilerlenemeyeceği için While döngüsünden çıkılır.<br />

int i = 1;<br />

while ( x - i >= 0 & y - i >= 0 )<br />

{<br />

if ( !( tahta[ x - i, y - i ] ) ) {<br />

lbHareketAlani.Items.Add((x -<br />

i).ToString() + " - " + (y - i).ToString() );<br />

i += 1;<br />

}<br />

else {<br />

break;<br />

}<br />

}<br />

3. 7, 0 yönüne doğru ilerlenir ve olası hareketler liste kutusuna eklenir.<br />

i = 1;<br />

while ( x + i < tahta.GetLength( 0 ) & y - i >=<br />

0 ) {<br />

if ( !( tahta[ x + i, y - i ] ) ) {<br />

lbHareketAlani.Items.Add( (x +<br />

i).ToString() + " - " + (y - i).ToString() );<br />

i += 1;<br />

}<br />

else {<br />

break;<br />

}<br />

}<br />

4. 7, 7 yönüne doğru kontrol yapılır.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!