Daftar Isi:
- Langkah 1: Dapatkan Semua Bagian
- Langkah 2: Layar Sentuh Warna 2.8" untuk Arduino
- Langkah 3: Membangun Proyek dan Mengujinya
- Langkah 4: Algoritma Game
- Langkah 5: Kode Proyek
- Langkah 6: Pemikiran dan Perbaikan Terakhir
Video: Arduino Touch Tic Tac Toe Game: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Teman-teman, selamat datang di tutorial Arduino lainnya! Dalam tutorial terperinci ini kita akan membuat game Arduino Tic Tac Toe. Seperti yang Anda lihat, kami menggunakan layar sentuh dan kami bermain melawan komputer. Gim sederhana seperti Tic Tac Toe adalah pengantar yang bagus untuk pemrograman gim dan Kecerdasan Buatan. Meskipun kami tidak akan menggunakan Algoritma Kecerdasan Buatan dalam game ini, kami akan memahami mengapa Algoritma Kecerdasan Buatan diperlukan dalam permainan yang lebih kompleks.
Mengembangkan game untuk Arduino tidaklah mudah dan membutuhkan banyak waktu. Tetapi kita dapat membuat beberapa permainan sederhana untuk Arduino karena menyenangkan dan memungkinkan kita untuk menjelajahi beberapa topik pemrograman yang lebih maju, seperti Kecerdasan buatan. Ini adalah pengalaman belajar yang luar biasa dan pada akhirnya Anda akan memiliki permainan yang bagus untuk anak-anak!
Sekarang mari kita bangun proyek ini.
Langkah 1: Dapatkan Semua Bagian
Bagian-bagian yang diperlukan untuk membangun proyek ini adalah sebagai berikut:
Arduino Uno
Layar Sentuh 2,8”
Biaya proyek sangat rendah. Itu hanya 15$
Sebelum mencoba membangun proyek ini, silakan tonton video yang sudah saya siapkan tentang layar sentuh. Saya telah melampirkannya dalam instruksi ini. Ini akan membantu Anda memahami kode, dan mengkalibrasi layar sentuh.
Langkah 2: Layar Sentuh Warna 2.8" untuk Arduino
Saya menemukan layar sentuh ini di banggood.com dan memutuskan untuk membelinya untuk mencoba menggunakannya di beberapa proyek saya. Seperti yang Anda lihat, layarnya tidak mahal, harganya sekitar $ 11.
Dapatkan di sini
Layar menawarkan resolusi 320x240 piksel dan hadir sebagai pelindung yang membuat koneksi dengan Arduino sangat mudah. Seperti yang Anda lihat, layar menggunakan hampir semua pin digital dan analog Arduino Uno. Saat menggunakan perisai ini, kami hanya memiliki 2 pin digital dan 1 pin analog untuk proyek kami. Untungnya, tampilan berfungsi dengan baik dengan Arduino Mega juga, jadi ketika kita membutuhkan lebih banyak pin, kita dapat menggunakan Arduino Mega daripada Arduino Uno. Sayangnya tampilan ini tidak berfungsi dengan Arduino Due atau papan Wemos D1 ESP8266. Keunggulan lain dari shield ini adalah ia menawarkan slot micro SD yang sangat mudah digunakan.
Langkah 3: Membangun Proyek dan Mengujinya
Setelah menghubungkan layar ke Arduino Uno, kita dapat memuat kode dan kita siap untuk bermain.
Pada awalnya, kami menekan tombol "Mulai Game" dan permainan dimulai. Arduino bermain terlebih dahulu. Kami kemudian dapat memainkan gerakan kami hanya dengan menyentuh layar. Arduino kemudian memainkan gerakannya dan seterusnya. Pemain yang berhasil menempatkan tiga dari tanda mereka dalam baris horizontal, vertikal, atau diagonal memenangkan permainan. Saat permainan selesai, layar Game Over akan muncul. Kami kemudian dapat menekan tombol play lagi untuk memulai permainan lagi.
Arduino sangat bagus dalam permainan ini. Ini akan memenangkan sebagian besar permainan, atau jika Anda adalah pemain yang sangat baik, permainan akan berakhir seri. Saya sengaja merancang algoritma ini untuk membuat beberapa kesalahan untuk memberi pemain manusia kesempatan untuk menang. Dengan menambahkan dua baris lagi ke kode permainan, kita dapat membuat Arduino tidak mungkin kehilangan permainan. Tapi bagaimana bisa chip 2$, CPU Arduino, mengalahkan otak manusia? Apakah program yang kita kembangkan lebih pintar dari otak manusia?
Langkah 4: Algoritma Game
Untuk menjawab pertanyaan ini, mari kita lihat algoritma yang telah saya terapkan.
Komputer selalu bermain terlebih dahulu. Keputusan ini saja, membuat permainan lebih mudah bagi Arduino untuk menang. Langkah pertama selalu menyudutkan. Langkah kedua untuk Arduino juga merupakan sudut acak dari yang tersisa tanpa mempedulikan gerakan pemain sama sekali. Mulai saat ini, Arduino pertama-tama memeriksa apakah pemain bisa menang di langkah berikutnya dan memblokir gerakan itu. Jika pemain tidak bisa menang dalam satu gerakan, ia memainkan gerakan sudut jika tersedia atau gerakan acak dari yang tersisa. Itu saja, algoritma sederhana ini dapat mengalahkan pemain manusia setiap saat atau dalam skenario terburuk permainan akan menghasilkan seri. Ini bukan algoritma permainan tic tac toe terbaik, tetapi salah satu yang paling sederhana.
Algoritma ini dapat diimplementasikan di Arduino dengan mudah, karena permainan Tic Tac Toe sangat sederhana, dan kita dapat dengan mudah menganalisis dan menyelesaikannya. Jika kita merancang pohon permainan, kita dapat menemukan beberapa strategi kemenangan dan dengan mudah menerapkannya dalam kode atau kita dapat membiarkan CPU menghitung pohon permainan secara real time dan memilih langkah terbaik dengan sendirinya. Tentu saja, algoritma yang kami gunakan dalam game ini sangat sederhana, karena permainannya sangat sederhana. Jika kami mencoba merancang algoritme pemenang untuk catur, bahkan jika kami menggunakan komputer tercepat, kami tidak dapat menghitung pohon permainan dalam seribu tahun! Untuk game seperti ini, kami membutuhkan pendekatan lain, kami membutuhkan beberapa algoritma Artificial Intelligence dan tentu saja kekuatan pemrosesan yang sangat besar. Lebih lanjut tentang ini di video mendatang.
Langkah 5: Kode Proyek
Mari kita lihat sekilas kode proyek. Kami membutuhkan tiga perpustakaan agar kode dapat dikompilasi.
- Adafruit TFTLCD:
- Adafruit GFX:
- Layar sentuh:
Seperti yang Anda lihat, bahkan permainan sederhana seperti ini, membutuhkan lebih dari 600 baris kode. Kodenya rumit, jadi saya tidak akan mencoba menjelaskannya dalam tutorial singkat. Saya akan menunjukkan kepada Anda implementasi algoritma untuk gerakan Arduino.
Pada awalnya, kami memainkan dua sudut acak.
<int firstMoves={0, 2, 6, 8}; // akan menggunakan posisi ini terlebih dahulu for(counter=0;counter<4;counter++) //Menghitung gerakan pertama yang dimainkan { if(board[firstMoves[counter]!=0) // Gerakan pertama dimainkan oleh seseorang { movePlayed++; } } lakukan{ if(bergerak<=2) { int randomMove =random(4); int c=firstMoves[randomMove]; if (papan[c]==0) { delay(1000); papan[c]=2; Serial.print(FirstMoves[randomMove]); Serial.println(); drawCpuMove(FirstMoves[randomMove]); b=1; } }
Selanjutnya, di setiap putaran kami memeriksa apakah pemain bisa menang di langkah selanjutnya.
int cekOpponent()
{ if(board[0]==1 && board[1]==1 && board[2]==0) return 2; else if(board[0]==1 && board[1]==0 && board[2]==1) return 1; else if (board[1]==1 && board [2]==1 && board[0]==0) return 0; else if (board[3]==1 && board[4]==1 && board[5]==0) return 5; else if (board[4]==1 && board[5]==1&& board[3]==0) return 3; else if (board[3]==1 && board[4]==0&& board[5]==1) return 4; else if (board[1]==0 && board[4]==1&& board[7]==1) return 1; jika tidak, kembalikan 100; }
Jika ya, kami memblokir gerakan itu, sebagian besar waktu. Kami tidak memblokir semua gerakan untuk memberi pemain manusia kesempatan untuk menang. Bisakah Anda menemukan gerakan mana yang tidak terhalang? Setelah memblokir langkah, kami memainkan sudut yang tersisa, atau gerakan acak. Anda dapat mempelajari kodenya, dan menerapkan algoritme Anda sendiri yang tidak ada duanya dengan mudah. Seperti biasa, Anda dapat menemukan kode proyek yang dilampirkan pada instruksi ini.
CATATAN: Karena Banggood menawarkan tampilan yang sama dengan dua driver tampilan yang berbeda, jika kode di atas tidak berfungsi, ubah fungsi initDisplay menjadi berikut:
batal initDisplay()
{ tft.reset(); tft.begin(0x9341); tft.setRotation(3); }
Langkah 6: Pemikiran dan Perbaikan Terakhir
Seperti yang Anda lihat, bahkan dengan Arduino Uno, kami dapat membangun algoritma yang tidak ada duanya untuk game sederhana. Proyek ini sangat bagus, karena mudah dibuat, dan pada saat yang sama merupakan pengantar yang bagus untuk Kecerdasan Buatan dan pemrograman game. Saya akan mencoba membangun beberapa proyek yang lebih maju dengan Kecerdasan Buatan di masa depan menggunakan Raspberry Pi yang lebih kuat, jadi pantau terus! Saya akan senang mendengar pendapat Anda tentang proyek ini.
Silakan kirim komentar Anda di bawah ini dan jangan lupa untuk menyukai instruksinya jika menurut Anda menarik. Terima kasih!
Direkomendasikan:
Microbit Tic Tac Toe Game: 4 Langkah (dengan Gambar)
Microbit Tic Tac Toe Game: Untuk proyek ini, rekan kerja saya - @descartez dan saya membuat permainan tic tac toe yang mengagumkan menggunakan fungsi radio microbits. Jika Anda belum pernah mendengar tentang mikrobit sebelumnya, itu adalah mikrokontroler luar biasa yang dirancang untuk mengajarkan pemrograman anak-anak. Mereka
Game 3D4x: 3D 4x4x4 Tic-Tac-Toe: 5 Langkah (dengan Gambar)
Game 3D4x: 3D 4x4x4 Tic-Tac-Toe: Apakah Anda bosan memainkan tic-tac-toe 2 dimensi yang sama, lama, membosankan,?? Nah kami punya solusinya untuk Anda! Tic-tac-toe dalam 3 dimensi!!! Untuk 2 pemain, di kubus 4x4x4 ini, dapatkan 4 LED berturut-turut (ke segala arah) dan Anda menang! Anda membuatnya. Anda
Cara Membuat Game Tic Tac Toe Menggunakan Swift Dengan Xcode: 5 Langkah
Cara Membuat Game Tic Tac Toe Menggunakan Swift Dengan Xcode: Dalam tutorial Swift ini saya akan menunjukkan cara membuat Aplikasi Tic Tac Toe. Aplikasi ini sangat sederhana dan merupakan proyek yang bagus untuk pemula. Saya akan memecah tutorial menjadi tiga langkah:1. Membuat objek2. Menghubungkan objek ke dalam kode3. k
Game Tic-Tac Toe Interaktif Dikendalikan Dengan Arduino: 6 Langkah
Game Tic-Tac Toe Interaktif Dikendalikan Dengan Arduino: Tujuan dari proyek Tic-Tac-Toe Fisik adalah untuk memindahkan game terkenal ke dunia fisik. Awalnya, permainan ini dimainkan oleh dua pemain di selembar kertas - dengan meletakkan simbol 'X' dan 'O' secara bergantian. Ide kami adalah untuk memeriksa perilaku pemain
Arduino dan Touchpad Tic Tac Toe: 8 Langkah (dengan Gambar)
Arduino dan Touchpad Tic Tac Toe: Atau, latihan multiplexing input dan output, dan bekerja dengan bit. Dan pengajuan untuk kontes Arduino. Ini adalah implementasi dari permainan tic tac toe menggunakan array 3x3 LED dua warna untuk tampilan, touchpad resistif sederhana