Saya sedang mengerjakan game jenis boggle untuk android, menggunakan libgdx. Pengguna disajikan dengan kotak surat 4x4 dan harus menemukan kata-kata dengan menyeret jari mereka ke atas huruf.
Tidak seperti boggle, saya ingin huruf yang digunakan menghilang. Surat yang tersisa akan jatuh (ke bagian bawah papan, orientasi layar tetap) dan papan diisi ulang dari atas. Pengguna dapat memutar papan untuk mencoba dan menempatkan sulit untuk menggunakan huruf di tempat yang lebih baik dengan pemilihan kata strategis.
Sebuah contoh:
d g a o
u o r T
h v R I
d G n a
Jika saya memilih kata GRIT, surat-surat itu akan hilang dan sisanya jatuh:
d
u g a
h o r o
d v n a
dan kemudian diganti dengan surat baru
d w x y
u g a z
h o r o
d v n a
Saya buntu mencari cara untuk mewakili papan dan ubin.
Saya mencoba mewakili papan sebagai matriks untuk melacak ubin yang dipilih dan gerakan yang valid dan ubin yang disimpan dalam matriks juga sehingga ada pemetaan yang mudah. Ini berfungsi, tetapi saya harus menulis beberapa kode berbelit-belit untuk memutar papan.
Bagaimana gim lain menangani masalah ini?
EDIT: Jadi memikirkannya, saya harus benar-benar hanya memproses titik sentuh saya sesuai dengan rotasi papan sehingga sel tetap konstan. Terlampir gambar apa yang saya pikirkan.
Jawaban:
Saya tidak akan menggunakan array untuk ini sama sekali karena mengaturnya akan semakin kompleks. Buat struktur data Dewan khusus dengan Node yang memiliki referensi ke tetangga mereka. Ini pada dasarnya adalah multi-dimensi LinkedList of Nodes. Dengan cara itu, jika huruf sebuah node dihapus, node lain dapat melihatnya dengan cara enkapsulasi. Ini menghindari aritmatika array yang rumit. Anda akan membutuhkan satu fungsi besar untuk membuat semuanya terhubung dengan benar, tetapi begitu ditautkan, logika akan lebih mudah untuk dikerjakan.
Edge edge Anda akan memiliki tetangga yang ditetapkan
null
, jadi pastikan untuk menanganinya sesuai dengan metode Anda di kelas Node yang perlu merujuk ke tetangga.Saya telah menggunakan pendekatan ini untuk mengimplementasikan Game Of Life Conway dan setelah Anda mengaturnya, secara drastis mengurangi kompleksitas menambahkan logika yang mengubah keadaan Node berdasarkan tetangga.
Bergantung pada bagaimana Anda memanipulasi node di papan, Anda mungkin memerlukan satu metode papan untuk mengulangi dan menentukan status atau tindakan selanjutnya dan menyimpannya dalam setiap node. Kemudian ikuti dengan iterasi dan komit setiap node ke negara baru. Ini menghindari node menentukan status mereka selanjutnya dengan melihat node yang sudah berubah.
sumber
Ya solusinya adalah Anda mendapatkan nilai dari matriks atau array dan mengatur Nilai itu untuk temp array atau matriks dan kemudian mengatur nilai dari sana ini menunjukkan Anda rotate value gird. Saya menambahkan kode di bawah ini saya pikir ini membantu Anda
sumber