2048 Oyunu Mantığı ve Örnek Kodu ( C programing)


Geçen dönem okul projesi olarak verilen bir C projesini bugün siz takipçilerimle paylaşmak istiyorum. Genel olarak proje verildiği zaman biraz internette bilgi arayışı içerisine girdim fakat sadece mantığından bahsediliyordu çoğu sitede. Birkaç site ise Java ve C++ örnek kodlarını paylaşmıştı tabi bu kodlar görsel tabanlıydı bu yüzden mantığını anlamak daha kolayıma geldi ve biraz uğraşarak kodları yazdım.Neyse lafı uzatmadan size ilk olarak mantığını anlatacağım daha sonra ise yazdığım kodu paylaşacağım. Aslında birkaç farklı yöntemle aynı işlemleri yapabilirsiniz.

MANTIK:

Rakam Birleştirme Algoritması

Tek bir satır için aşağıdaki işlemleri yaptığımızda rakam birleştirme işlemini doğru bir şekilde gerçekleştirmiş oluruz. Üstelik bütün olası durumlar için bu metot doğru çalışır. Yine varsayılan yön olarak sola yaslandığını kabul edelim.

Adım-1: Hareket yönümüzü sol olarak belirlediğimiz için öncelikle bütün rakamları sola yaslarız. Burada herhangi bir kural yok. Normal bir şekilde sola yaslayın.
(Short algoritmaları diye arama yaparsanız bulabilirsiniz)

Adım-2: Soldan ilk kareyi pas geçip ikinci kareden başlarız. Bu karenin değeri ile bir solundaki karenin değeri aynı mı diye kontrol ederiz.

Adım-3: Eger aynıysa soldakinin değeri 2 ile çarpılır. Diğerinin değeri sıfır yapılır. İşlem bitti. Bir sonraki seçim için üçüncü kareye geliriz.

Adım-4: Eğer iki karenin değeri farklı olursa herhangi bir işlem yapılmaz. Seçim işlemi sağa doğru ötelenir ve diğer kareye geçeriz. Son kare boş olduğundan herhangi bir eşitlik oluşmayacaktır.

Adım-5: Tüm tarama işlemi bittikten sonra en başta yaptığımız sola yaslama işlemini tekrarlarız. Bütün rakamları koşulsuz olarak sola yaslarız.

Her bir satır için yukarıdaki adımları tekrarladığınızda rakam birleştirme işlemini 2048 oyununda olduğu gibi gerçekleştirmiş oluruz.

Her Yön İçin Ortak Kod Yazmak

Yukarıda hep sol yöne göre anlatım yaptım. Siz kodunuzu oluştururken sola doğru tarama işlemine göre kod yazdınız diyelim. Peki yukarı yön için ayrı, sağ yön için ayrı, aşağı yön için ayrı kodlar mı yazalım? Aslında olabilir fakat gayet uzun. Sola yaslama ile sağa yaslama arasında bile döngülerin ters çalışması söz konusu. Yani birinde sütun değişkenini 1-2-3-4 olarak oluştururken diğerinde 4-3-2-1 olarak oluşturmanız gerekir. Üstelik dik harekete geçersek bu sefer sütun değil satır saydırmamız gerekecek.
Yani bizim rakam yaslama kodumuz tek bir yön için (mesela yukarıdaki gibi sola) çalışacak. Biz hareket yönüne göre tabloyu döndüreceğiz. Mesela, yukarı yaslama yapılmak isteniyorsa tabloyu önce -90 derece yan yatırıp sola yaslama işlemi yapacağız. Sonra +90 derece çevirip normal yönüne alacağız. Sağa yaslama yapılmak istenirse tabloyu 180 derece çevir, sola yaslama yap, 180 derece çevir, normal haline getir. (1)

ÖRNEK KOD:

K1:https://www.gokhanca.com/2048-oyunu-algoritmasi

Yorumlar

Ad

android,2,ANDROİD,1,android oreo,1,androidcode,1,androidstudio,2,androiduygulama,1,bitcoin,2,bitcoin kazan,1,bitcoin oluştur,1,BLOGGER,2,c programing,4,dark net,1,dark web,1,ddos,1,deep web,1,devlet,1,google,3,hack,1,hacker,1,hesap makinesi,1,HTML,2,internet,1,JAVA,3,kali,9,kali kurulumu,1,kali Linux,3,korunma,1,madencilik,1,ONESIGNAL,1,öneri,3,pip,1,pip kurulumu,1,python,3,s7,1,s7edge,1,sanal dünya,1,tor,1,tor browser,1,veri tipleri,1,webview,1,windows,1,WORDPRESS,1,yazılım,1,
ltr
item
AATTK: 2048 Oyunu Mantığı ve Örnek Kodu ( C programing)
2048 Oyunu Mantığı ve Örnek Kodu ( C programing)
2048 mantık, 2048 oyunu mantık, 2048 game logic code, 2048 code logic, 2048 logic game, 2048 game logic code, 2048 in mantıÄŸı, 2048 logic in java, 2048 logic in java, 2048 oyunu mantık, 2048 oyununun mantıÄŸı, 2048 puzzle logic, 2048 örnek kod, 2048 c dili ile yapımı
https://4.bp.blogspot.com/-K58uwLf_6JA/Wl4bgrq0pEI/AAAAAAAAF7s/KP3eItrL2vU95vbT5N6HUqYY4uGad88MQCLcBGAs/s640/Ekran%2BAl%25C4%25B1nt%25C4%25B1s%25C4%25B1.PNG
https://4.bp.blogspot.com/-K58uwLf_6JA/Wl4bgrq0pEI/AAAAAAAAF7s/KP3eItrL2vU95vbT5N6HUqYY4uGad88MQCLcBGAs/s72-c/Ekran%2BAl%25C4%25B1nt%25C4%25B1s%25C4%25B1.PNG
AATTK
https://www.aattk.net/2018/01/2048-oyunu-mantg-ve-ornek-kodlar-c.html
https://www.aattk.net/
https://www.aattk.net/
https://www.aattk.net/2018/01/2048-oyunu-mantg-ve-ornek-kodlar-c.html
true
167228049291181800
UTF-8
Loaded All Posts Not found any posts Tamamını Görüntüle Devamını Oku Yanıtla İptal Yanıtla Sil Yazar Anasayfa Sayfalar Yayın View All Bunları da Beğenebilirisin ? Kategori ARŞİV Ara ALL POSTS Hiçbir şey bulamadım. Üzgünüm :( ANASAYFAYA DÖN Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Kodları Kopyala Hepsini seç Tüm Kodlar Kopyalandı Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy