Workshop Project 2 Tic Tac Toe Game Mohammad Zikky, S.ST, M.T
Overview Game tic-tac-toe merupakan permainan klasik berjenis permainan papan (board-game) dengan papan permainan sembilan buah ruang (3x3) berbentuk kotak yang bersekat (bidak). Pemain Game ini menggunakan 2 symbol, yaitu X dan O. Game dimulai dengan mengisi salah satu bentuk simbol pada salah satu bidak. Jika tiga buah simbol yang berbentuk sama tersusun membentuk garis diagonal, vertikal, atau horizontal, maka pemain tersebut akan menang. Game Tic Tac Toe biasanya dimainkan oleh dua orang pemain, tapi pada versi game berbasis komputer, pemain lawan dapat digantikan oleh computer/AI (Akbar, 2007)
Algoritma yang Biasa Dipakai Algoritma Minimax Algoritma minimax merupakan metode yang sangat terkenal dalam pengambilan peluang kalah atau rugi. Dengan algoritma tersebut komputer dapat mengambil keputusan terbaik untuk menyelesaikan masalah. Dengan algoritma minimax ini, pohon solusi akan dibuat dari awal permainan sampai akhir permainan dimana semua kemungkinan kondisi dijadikan simpul dari pohon solusi, sehingga AI tinggal memilih langkah yang akan menuntunnya ke hasil akhir Algoritma Backtracking Algoritma runut-balik (backtracking) adalah algoritma yang berbasis pada DFS (DEPTH-FIRST SEARCH) untuk mencari solusi persoalan secara lebih tepat. Runut-balik, yang merupakan perbaikan dari algoritma brute-force, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan, sehingga pencarian dapat dihemat. Semua kemungkinan solusi dari persoalan disebut ruang solusi. Untuk memfasilitasi pencarian solusi ini,maka ruang solusi diorganisasikan dalam suatu struktur pohon Algoritma runut balik atau backtracking yang merupakan bentuk tipikal dari algoritma rekursif. Lintasan dari akar ke daun menyatakan solusi yang mungkin. Seluruh lintasan dari akar ke daun membentuk ruang solusi.
Cara Kerja Algoritma Minimax Secara Umum Cari langkah yang dengan nilai maksimum IF langkah tersebut merupakan langkah kemenangan THEN pilih lagkah tersebut. ELSE FOR EACH kemungkinan langkah yang ada Cari langkah lawan yang bernilai minimum. RETURN nilai dari langkah tersebut. Pilih langkah yang bernilai maksimum dari langkah-langkah tersebut
Algoritma Umum untuk Permainan TicTacToe IF ada langkah kemenangan THEN pilih langkah tersebut. ELSE IF lawan mempunyai 2 spot terisi dalam satu garis dengan spot ketiga masih kosong THEN tutup langkah tersebut (isi spot kosong ketiga tersebut). ELSE melangkah ke state yang mempunyai kemungkinan menang tertinggi (berdasarkan nilai heuristic yang dibangkitkan)
Praktikum Jalankan TicTacTou-SourceCode (Terlampir dalam Text) di program C++ Running dan Jalankan Permainannya
Percobaan lebih lanjut Pahami masing-masing fungsi dan baris program, kemudian beri keterangan/comment di setiap baris/pokok besar programnya. Lakukan denga tanda // (untuk 1 baris) atau /* isi comment */ utuk lebih dari 1 baris. Gambarkan Aliran permainannya dalam Diagram FSM Ganti Giliran Pemain B dengan AI (Artificial Intelligent)/ Pemain Komputer Analisa dan jelaskan hasil praktikumnya Buat laporan
Referensi Birch, Chad (2010), Understanding Pac-Man Ghost Behaviour (http://gameinternals.com/post/2072558330/understanding-pac-man- ghost-behavior) Pittman, jamey (2010), Pac-Man Dossier (http://home.comcast.net/~jpittman2/pacman/pacmandossier.html) Nugroho Chandra, Timotius (2010), Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Pac-Man, Institut Teknologi Bandung, Bandung