Mayın Tarlası [C Programlama]

mayis tarlasi

Başlarken

IYTE’de genetik okuyan bir arkadaşım dedi ki: “Bizim buradaki arkadaşlara mayın tarlası ödevi vermişler”. Ben de dedim ben niye yapmayayım. Fikir o şekilde ortaya çıktı. Ancak durum şu ki sonradan ödevin pdf’ini alıyorum. Ödevde istenen şey: bir matrix[mayın tarlası] oluşturup rastgele 0 ve 1[mayın] ler yerleştirip birbirine komşu olmayan 1’lerin [mayınların] sayısını bulmak. Verilen ödevin gerçek mayın tarlası oyunuyla o kadar da ilgisi yok. Ama ben bunu öğrendiğimde oyunun çoğu kısmı tamamlanmıştı. İyiki de öyle oldu :)

Oyunun Kuralları

Çoğunuz oyunun nasıl oynandığını biliyorsunuzdur; ancak ben oyunun kurallarını oyunu C ile yazmadan önce öğrendim. Bilmeyenler için: çok sayıda kareden oluşan bir şekil var, bir kare seçiyorsunuz. Eğer mayınlı olanı seçmemişseniz, o karenin komşularından(çevresindeki 8 kare) kaç tanesinde mayın var bilgisini görüyorsunuz. Bazende bir kare açmanıza rağmen birden fazla kare açılıyor. Bu durumda ise açtığınız karenin komşularından hiç birinde mayın yoktur. Bu sebeple o karenin 8 komşusu açılır. Eğer o sekizlinin içerisinde de mayına komşuluğu olmayan kare varsa o da açılır. Bu şekilde tek kare seçmiş olsanız da birden fazla karenin durumunu görmüş olacaksınız.

Programlama

matris[i-1][j-1] dediğimiz şey matris[i][j] nin sol üst çaprazdaki komşusudur.

matris[i-0][j-1] dediğimiz şey matris[i][j] nin soldaki 3 komşusundan ortadakidir gibi.

{-1,-0,+1,-1,-0,+1,-1,+1}

{-1,-1,-1,+1,+1,+1,-0,-0}

Kodlama

Açıklama yapmaya kalkarsam yazı baya uzun olacak. O yüzden gerekli açıklamları kod içerisinde yorum olarak ekledim.

Kullanılan C dili özellikleri:

Kaynak Kod

Ekran Görüntüleri

Yapılabilecekler

Varsa fikir, eleştiri ve yorumlarınız lütfen paylaşın.

İyi kodlamalar.