Page 36 - Bilgisayar Bilimi | Kur 1
P. 36
5. İşlem: Mısır çuvalını nehrin karşı tarafına taşıyın.
6. İşlem: Tekneyi bir kıyıdan diğerine götürün.
7. İşlem: Kazı nehrin karşı tarafına taşıyın.
Bu Problemden Neler Öğrendik?
Sorunu daha biçimsel bir şekilde yeniden ifade etmek, bir problemi anlamak için mükemmel bir
tekniktir. Birçok programcı, diğer programcıları bir sorunu tartışmak için arar; sadece diğer program-
cıların yanıtı olabileceğini düşünür fakat aynı zamanda problemi yüksek sesle ifade etmek genellikle
yeni ve yararlı düşünceleri tetikler. Bir sorunun tekrar okunması, bu tartışmayı başka bir programcıya
yaptırmak gibidir ancak her iki noktadan da destek alırsınız.
Daha kapsamlı ders ise sorunun düşünülmesi, çözümü düşünmek kadar üretken olabileceği gibi bazı
durumlarda daha üretken olabileceğidir. Çoğu durumda, çözüme doğru yaklaşım biçimi olabilir.
2.1.5.2. Sudoku
Sudoku oyunu gazete ve dergilerde yer almasıyla ayrıca web ve telefon tabanlı bir oyun olarak su-
nulmasıyla son derece popüler hâle gelmiştir. Farklı varyasyonlar olmakla birlikte burada kısa olan
geleneksel sürümü tartışılacaktır.
9x9 boyutlu bir tablo kısmen tek basamaklı (1-9 arası) sayı ile doldurulur ve oyuncu belirli kısıtla-
malara göre hareket ederken yalnızca boş kareleri doldurmalıdır: Her bir satır ve sütunda, her rakam
tam olarak bir kez yazılmalıdır ve her doldurulmuş 3x3 alanda her bir rakam tam olarak bir kez yer
almalıdır. O zaman, verilen bir sudoku yapısındaki boşlukları 1-9 arasındaki her bir sayıyı; bulunduğu
satır, sütun ve kare içinde yalnızca bir kez kullanılacak biçimde nasıl doldururuz?
Daha önce bu oyunu oynadıysanız muhtemelen en az zamanda bir kareyi tamamlamak için bir dizi
stratejiniz vardır. Şekil 1.11’de gösterilen örnek kareye bakarak anahtar başlangıç stratejisine odaklana-
lım.
9 1 6 7
8 2 3 9
5 3 2
9 1 3 6 2
2 4 6 8
1 4 8 2 5
9 5 7
6 7 1 5
5 4 6 9
Şekil 1.4: Kolay bir sudoku kare bulmaca
35