Nama : Nurdita Rahmafitri
Kelas : 3IA04
NPM : 58414207
Dalam tutorial rinci ini kita akan membangun sebuah game Arduino Tic-Tac-Toe. Seperti yang bisa Anda lihat, kami menggunakan layar sentuh dan kami bermain melawan komputer. Game sederhana seperti Tic-Tac-Toe adalah pengenalan yang hebat untuk pemrograman game dan kecerdasan buatan. Meskipun kita tidak akan menggunakan algoritma kecerdasan buatan dalam game ini, kita akan mengerti mengapa algoritma kecerdasan buatan dibutuhkan dalam game yang lebih kompleks.
Mengembangkan game untuk Arduino tidaklah mudah dan membutuhkan banyak waktu. Tapi kita bisa membangun beberapa permainan sederhana untuk Arduino karena ini menyenangkan dan ini akan memungkinkan kita menjelajahi beberapa topik pemrograman yang lebih maju, seperti kecerdasan buatan.
3.1. Proses Pembuatan
- Siapkan Semua Partisinya
Gambar 2.10 Arduino Uno (kiri) & Layar Touch Screen 2.8 (kanan)
Partisi yang dibutuhkan untuk membuat project ini adalah :
- Arduino Uno
- Layar Touch Screen 2.8’’
2. Siapkan Layar sentuh berwarna sebesar 2,8’’ untuk arduino
Gambar 2.21 Layar Touch Screen 2.8
Tampilan yang di berikan 320x240 pixels dan hadir sebagai perisai yang membuat koneksi dengan arduino menjadi sangat mudah. Seperti yang dilihat, layar ini menggunakan hampir semua pin digital dan analog dari arduino uno. Saat menggunakan layar ini kita hanya memiliki 2 pin digital dan 1 pin analog untuk proyek kita. Untungnya, tampilannya juga bagus dengan Arduino Mega, jadi saat ini kita membutuhkan lebih banyak pin, kita bisa menggunakan Arduino Mega dan bukan Arduino Uno. Sayangnya tampilan ini tidak bekerja dengan Arduino Due atau papan Wemos D1 ESP8266. Keuntungan lain dari perisai adalah bahwa ia menawarkan slot micro SD yang sangat mudah digunakan.
3. Merakit project nya dan Test secara bertahap
Gambar 2.22 Arduino UNO
Pada awalnya, kami menekan tombol "Start Game" dan permainan dimulai. Arduino bermain lebih dulu. Kita kemudian dapat memutar langkah kita hanya dengan menyentuh layar. Arduino kemudian memainkan gerakannya dan seterusnya. Pemain yang berhasil menempatkan tiga tanda mereka secara horizontal, vertikal, atau diagonal memenangi pertandingan. Saat permainan berakhir, layar Game Over akan muncul. Kita kemudian bisa menekan tombol play lagi untuk memulai permainan lagi.
Arduino sangat piawai dalam permainan ini. Ini akan memenangkan sebagian besar permainan, atau jika Anda adalah pemain yang sangat bagus, permainan akan berakhir imbang. Saya sengaja merancang algoritma ini untuk membuat beberapa kesalahan agar memberi kesempatan kepada pemain manusia untuk menang. Dengan menambahkan dua baris lagi ke kode permainan, kita bisa membuat Arduino tidak mungkin kalah dalam permainan. Tapi bagaimana chip $ 2, CPU Arduino, mengalahkan otak manusia? Apakah program yang kita kembangkan lebih pintar dari pada otak manusia?
4. Algoritma Game
Gambar 2.23 Algoritma
Komputer selalu bermain dulu. Keputusan ini sendiri, membuat permainan lebih mudah bagi Arduino untuk menang. Langkah pertama selalu di tikungan. Langkah kedua untuk Arduino juga merupakan sudut acak dari yang tersisa tanpa mempedulikan pergerakan pemain sama sekali. Dari titik ini, Arduino pertama kali memeriksa apakah pemain bisa menang dalam langkah selanjutnya dan blok yang bergerak. Jika pemain tidak bisa menang dalam satu gerakan tunggal, ia akan memainkan perpindahan sudut jika tersedia atau yang acak dari yang tersisa. Begitulah, algoritma sederhana ini bisa mengalahkan pemain manusia setiap saat atau pada skenario terburuk permainan akan menghasilkan hasil imbang. Ini bukan algoritma permainan tic tac toe terbaik, tapi salah satu yang paling sederhana.
Algoritma ini bisa diimplementasikan dengan mudah di Arduino, karena game Tic-Tac-Toe sangat sederhana, dan kita dapat dengan mudah menganalisanya dan mengatasinya. Jika kita merancang pohon permainan, kita dapat menemukan beberapa strategi unggulan dan menerapkannya dengan mudah dalam kode atau kita dapat membiarkan CPU menghitung pohon game secara real time dan memilih langkah terbaik dengan sendirinya. Tentu saja, algoritma yang kita gunakan dalam game ini sangat sederhana, karena permainannya sangat sederhana. Jika kita mencoba merancang algoritma pemenang untuk catur, biarpun kita menggunakan komputer tercepat kita tidak dapat menghitung pohon game dalam seribu tahun! Untuk game seperti ini, kita memerlukan pendekatan lain, kita memerlukan beberapa algoritma Artificial Intelligence dan tentu saja kekuatan pemrosesannya yang besar. Lebih lanjut tentang ini di video masa depan.
5. Code Program
Gambar 2.24 Code Program
Kita membutuhkan 3 libraries agar kode dapat dikompilasi :
- Adafruit GFX
- Touchscreen
- Adafruit TFTLCD yang di modifikasi
Berikut adalah implementasi algoritma untuk pergerakan AI di arduino
int firstMoves[]={0,2,6,8}; // will use these positions first
for(counter=0;counter<4;
counter++) //Count first moves played
{
if(board[firstMoves[counter]]!=0) // First move is played by someone
{
movesPlayed++;
}
}
do{ if(moves<=2)
{
int randomMove =random(4);
int c=firstMoves[randomMove];
if (board[c]==0)
{
delay(1000);
board[c]=2;
Serial.print(firstMoves[randomMove]);
Serial.println();
drawCpuMove(firstMoves[randomMove]);
b=1;
}
}
Setelah itu , setiap ronde kita cek apakah player bisa memenangkan langkah selanjutnya.
<p>int checkOpponent()<br>{
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;
else return 100;
}
Apabila iya, maka akan diblok langkahnya, tapi kita tidak memblok semua langkahnya agar player mempunyai kesempatan untuk memenangkan permainan.
6. Langkah Akhir dan Pengembangan
Gambar 2.25 Game Tic Tac Toe
Seperti yang bisa Anda lihat, bahkan dengan Arduino Uno, kita bisa membangun sebuah algoritma yang tak terkalahkan untuk permainan sederhana. Proyek ini sangat bagus, karena mudah dibangun, dan sekaligus merupakan pengantar kecerdasan buatan dan pemrograman game.
0 komentar:
Posting Komentar