Isi kandungan:

Permainan Arduino Sorta Sudoku: 3 Langkah (dengan Gambar)
Permainan Arduino Sorta Sudoku: 3 Langkah (dengan Gambar)

Video: Permainan Arduino Sorta Sudoku: 3 Langkah (dengan Gambar)

Video: Permainan Arduino Sorta Sudoku: 3 Langkah (dengan Gambar)
Video: How To Solve Sudoku- PART 6 - ANNOYING PUZZLE LEVELS 2024, November
Anonim
Permainan Arduino Sorta Sudoku
Permainan Arduino Sorta Sudoku

Ramai orang suka bermain Sudoku dan cucu-cucu suka meneka permainan jadi saya memutuskan untuk membuat permainan "Sorta Sudoku" mudah alih. Dalam versi saya permainan ini adalah grid 4x4 tetapi hanya satu nombor yang disediakan. Ideanya adalah untuk meneka bilangan selebihnya dalam percubaan paling sedikit. Ini adalah permainan yang mudah tetapi boleh membuat ketagihan apabila anda memperoleh skor 15. skor yang sempurna. Permainan ini memerlukan elemen keberuntungan serta logik dan skor terbaik yang pernah saya lihat setakat ini ialah 16. Lihatlah kerana walaupun jika anda tidak berminat untuk membina permainan, mungkin ada beberapa elemen perisian yang boleh anda gunakan dalam salah satu projek anda sendiri.

Langkah 1: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Perkakasan boleh didasarkan pada hampir semua versi Arduino. Saya melakukan prototaip menggunakan Nano dan kemudian membakar kodnya ke cip ATMega328. Itu cip yang sama yang digunakan di Nano tetapi menggunakannya dengan sendirinya memungkinkan untuk membina yang lebih padat dan penggunaan tenaga yang lebih sedikit. Seperti yang anda lihat, saya membina litar di papan roti kecil yang memberikan sokongan pada modul LCD. Aspek lain yang berbeza adalah bahawa Nano berjalan pada 16-MHz menggunakan kristal luaran tetapi saya memilih untuk menggunakan pengayun 8-MHz terbina dalam untuk cip ATMega328. Itu menjimatkan bahagian dan kuasa.

LCD 2004 antara muka ke Arduino dengan cara yang sama seperti LCD 1602. Perbezaan yang menarik adalah dalam menangani lokasi paparan. Jelas ada perbezaan kerana ada empat baris bukan dua tetapi, pada tahun 2004, baris ketiga adalah lanjutan dari baris pertama dan baris keempat adalah lanjutan dari baris kedua. Dengan kata lain, jika anda mempunyai program ujian yang hanya menghantar rentetan watak ke LCD, watak ke-21 akan muncul pada permulaan baris ketiga dan watak ke-41 kembali ke permulaan baris pertama. Perisian ini mengatasi perbezaannya dengan jadual carian alamat LCD.

Input untuk permainan adalah matriks suis 4x4 buatan sendiri. Setiap suis berpadanan langsung ke lokasi yang setara pada paparan. Terdapat juga suis kuasa dan suis reset. Suis tetapan semula membersihkan permainan lama dan menghasilkan permainan baru.

Saya memutuskan untuk menjadikan bateri versi saya dikuasakan jadi saya menggunakan bateri 18650 Li-ion biasa, 3.6 volt. Itu memerlukan saya menambahkan papan kecil untuk membolehkan pengisian semula USB dan papan kecil lain untuk meningkatkan voltan bateri kepada 5 volt untuk LCD dan cip ATMega. Gambar menunjukkan modul yang saya gunakan tetapi ada juga modul all-in-one yang melakukan kedua fungsi tersebut.

Langkah 2: Perisian

Perisiannya sama untuk cip Nano dan ATMega328. Satu-satunya perbezaan adalah dalam kaedah pengaturcaraan. Saya menggunakan perisian LCD versi barebone sendiri dan perisian penyahkodan matriks papan kekunci. Ini adalah fail "sertakan" yang berasingan untuk projek.

Perintah "random" dan "randomSeed" digunakan untuk membantu membuat permainan. Saya menambahkan save ke EEPROM dari “seed” untuk memastikan bahawa urutan yang berbeza dihasilkan pada setiap powerup. Garis untuk teka-teki berasal dari tatasusunan 24 elemen. Tiga baris pertama dipilih secara rawak dari jadual, dengan pemeriksaan untuk memastikan bahawa baris yang dipilih tidak bertentangan dengan baris sebelumnya. Baris terakhir diisi secara manual kerana hanya akan ada satu corak yang mungkin pada ketika itu. Selepas itu hanya masalah mengimbas matriks papan kekunci dan menukar penekanan kekunci menjadi angka.

Untuk meneka nombor, tekan suis yang sesuai berulang kali. Setiap tekan meningkatkan bilangan yang ditunjukkan. Sekiranya anda melampaui angka yang anda mahukan, terus tekan. Sekiranya anda melepaskan suis sebentar, ia akan mengunci nombor terakhir yang dipaparkan. Sekiranya nombor itu tidak betul, nombor tersebut akan dihapus dan anda boleh mencuba lagi. Setiap tekaan meningkatkan pembilang yang ditunjukkan dan setelah angka ditebak dengan betul, suis matriks itu dilumpuhkan secara berkesan.

Langkah 3: Memaparkan

Memaparkan
Memaparkan
Memaparkan
Memaparkan
Memaparkan
Memaparkan

Berikut adalah beberapa gambar dari pelbagai paparan.

Disyorkan: