Game Tic Tac Toe Final

10
GAME TIC TAC TOE Untuk memenuhi salah satu tugas mata kuliah AI KELOMPOK 8 IF- C/ VI Gustania (208 700 838) Kania Wulandari (208 700 864) Ludi Adha Kurnia (208 700 866)

Transcript of Game Tic Tac Toe Final

Page 1: Game Tic Tac Toe Final

GAME TIC TAC TOE

Untuk memenuhi salah satu tugas mata kuliah AI

KELOMPOK 8

IF- C/ VI

Gustania (208 700 838)

Kania Wulandari (208 700 864)

Ludi Adha Kurnia (208 700 866)

JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SUNAN GUNUNG DJATI BANDUNG

2011

Page 2: Game Tic Tac Toe Final

GAME TIC TAC TOE

PENDAHULUAN

Permainan-permainan berbasis komputer ini juga bermacam-macam. Salah satu kelebihannya adalah kita tidak harus mencari orang untuk menjadi lawan tanding jika ingin bermain karena permainan berbasis komputer ini sudah mendukung single-player mode dimana kita dapat bermain sendiri melawan komputer yang dirancang untuk dapat berlaku seperti pemain manusia atau yang sering dikenal dengan Artificial Inteligince (AI). Contohcontoh permainan yang menggunakan AI adalah permainan catur, go, othello, checkers, bridge, tic-tac-toe dan lain sebagainya.

Untuk membuat pemain merasa seperti melawan pemain manusia lainnya, diperlukan suatu algoritma yang dapat membuat AI ini mampu mengambil keputusan yang terbaik agar dapat mengalahkan pemain atau setidaknya menghalau pemain menang.Algoritma minimax ini merupakan algoritma yang sangat sering dipakai untuk permasalah tersebut. Dan permainan tic-tac-toe merupakan salah satu contoh yang baik dan cukup sederhana untuk kita mengerti bagaimana cara kerja dan efeknya.

A. Rancangan Permainan

Tic tac toe adalah salah satu game klasik yang hanya bisa dimainkan oleh dua orang pemain. Dalam permainannya terdapat Sembilan buah ruang (3x3) berbentuk kotak yang bersekat-sekat dan dua buah benda yang digunakan untuk mengisi ruang tersebut, yaitu item yang berbentuk silang dan lingkaran.

Permainan dimulai dengan membuat atau mengisi salah satu bentuk item pada salah satu kotak bersekat, permainan ini adalah permainan menyusun tiga buah item yang berbentuk sama dan tersusun secara vertikal, horizontal ataupun diagonal dimana setiap item dapat diisi pada kotak berdasarkan navigasi yang kita pilih. Item tersebut akan tersusun sampai tersusun tiga buah item yang sama, baik secara vertikal, horizontal maupun diagonal.

Jika jumlah item yang bisa diisi pada kotak berjumlah sama antara kedua jenis bentuk item dan tidak membentuk suatu susunan komposisi apapun maka permainan dianggap seri dan jika anda sebagai pemain anda tidak bisa mengisi atau menyusun item secara berurutan ataupun jika komputer lebih dulu menyusun bentuk itemnya secara benar lebih dulu, maka anda dianggap kalah dalam permainan dan komputer lawan anda yang menang begitupun bila kejadian sebaliknya.

Aturan Permainan :

Games tic tac toe ini memiliki aturan main (Rule) yang digunakan selama berlangsungnya permainan, diantaranya sebagai berikut:

Page 3: Game Tic Tac Toe Final

1. User memulai permainannya terlebih dahulu, dan user menentukan posisi dari simbol (o/x) yang akan dimainkan. Dalam permainan ini, user bebas meletakkan simbol di mana saja di papan permainan.

2. User akan dihalangi oleh komputer untuk mencapai goal (tujuan) karena komputer telah diberi kecerdasan buatan sehingga komputer juga berusaha untuk menjadi pemenang.

3. Untuk mencapai suatu goal (tujuan) maka user harus menghindari terbentuknya kondisi yang membentuk secara vertical, horizontal, ataupun diagonal.

4. Pemain hanya mempunyai satu kali kesempatan pada setiap giliran..

Kondisi Menang:

Goal untuk menyelesaikan games Tic Tac Toe ini adalah membuat sebuah deretan tiga simbol yang dapat dibentuk secara vertical, horizontal ataupun diagonal.

Strategi yang harus dirancang oleh algoritma game

Untuk menang atau mencegah kekalahan dalam game ini. komputer harus secara konsisten melakukan langkah-langkah sesuai prioritas di bawah ini dengan mendahulukan langkah dengan prioritas tertinggi.1. Menyempurnakan 3 buah baris diagonal,vertikal, atau horizontal.2. Menahan lawan agar tidak membentuk tiga baris yang sempurna (horisontal, vertikal maupun diagonal).3. Menciptakan strategi dengan melakukan langkah yang membuat kita mempunyai dua kemungkinan penyempurnaan baris. Beberapa pola tersebut antara lain:

4. Mencegah posisi lawan mempunyai pola yang bisa membuatnya menang (contoh:pola sebagaimana no.3 ).5. Memperbesar kemungkinan kemenangan dengan membuat dua tanda yang berdampingan.6. Mencegah lawan membuat dua tanda yang berdampingan.

Agar berhasil komputer harus melengkapi langkahnya tanpa mengorbankan prioritas yang lebih tinggi secara konsisten.

Page 4: Game Tic Tac Toe Final

B. Alur Pembuatan Game Tic Tac Toe

Dengan bantuan kalkulasi program komputer secara langsung yang terimplementasi dalam program untuk permainan tic tac toe di dapat statistik sebagai berikut :

Analisa terhadap 765 bentuk yang essensial 362.880 posisi akhir jika belum diperhitungkan menang atau kalahnya. 26.380 posisi akhir jika diperhitungkan menang atau kalahnya (memperhitungkan bentuk

simetri). 255,168 posisi jika tidak memperhitungkan bentuk simetri, dengan rincian (jika X jalan

terlebih dahulu) :o 131,184 game dimenangkan oleh X

o 77,904 game dimenangkan oleh O

o 46,080 game berakhir seri

31.896 kemungkinan jalannya suatu game.

Klasifikasi game tic tac toe berdasarkan Artificial Intelligence

Setelah kita tahu bagaiman game ini kita bisa tinjau game tersebut dari sudut pandang Artificial Intelligence. Berdasarkan pembagian sifat dari sudut pandang dunia Artificial Intelligence, game tic tac toe mempunyai sifat seperti di bawah ini: State-of-the-art : algoritma berjalan di suatu komputer tertentu dan melakukan langkah

yang dikalkulasi terlebih dahulu. (contoh lain : catur). One-player games (pemain melawan environment yang telah dibuat oleh computer.

(contoh lain : Rubik's cube, jig-saw puzzle). two person, satu lawan satu, ada kemungkinan lawan akan menghalangi setiap strategi

yang akan kita wujudkan. Perfect information, pada saat tertentu kedua pemain tau seluruh kondisi dan posisi

lawan. Zero-sum,jika salah satu pemain menang maka pemain yang lain kalah.

Representasi pohon bagi Artificial Intelligence game ini

Kita dapat dapat merepresentasikan seluruh kemungkinan permainan dengan graf berarah yang biasa di sebut game tree (berbentuk pohon n-ary). Node dari pohon (tree) tersebut merepresentasikan keadaan game. Sisi berarah pada pohon tersebut merepresentasikan keadaan atau posisi tanda pada game.

Page 5: Game Tic Tac Toe Final

Sebagai contoh misalkan, game dimulai pada node akar. Jika ada kondisi start tersebut terdapat N kemungkinan langkah yaitu : m1, m2.. mN, maka akan terbentuk sisi-sisi terhadap node state ke dua sebanyak N juga : S1, S2.. SN. Dengan memperhitungkan kemungkinan langkah pada tiap tahap, kita sudah membangun suatu game tree. Daun pada pohon ini merepresentasikan kondisi akhir pada permainan. Dapat diselipkan pula beberapa nilai efisiensi pada tap node.sedangkan pada tiap daun diselipkan kondisi akhir pertandingan, yaitu menang kalah atau draw. Salah satu cara untuk menciptakan Artificial Intelligence yang sesuai adalah dengan menganalisa seluruh game tree. Namun, sebuah game tree tic tac toe yang lengkap mempunyai 1040 nodes.

Jumlah daun di dalam sebuah game tree yang komplit disebut kompleksitas game tree. Sedangkan untuk game tic tac toe mempunyai jumlah penyelesaian sebanyak 26.380 kemungkinanan

Algoritma Minimax

Algoritma minimax merupakan basis dari semua permainan berbasis AI seperti permainan catur misalnya. AI permainan catur tentunya sudah sangat terkenal dimana AI tersebut bahkan dapat mengalahkan juara dunia sekalipun. Pada algoritma minimax, pengecekan akan seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon permainan yang berisi semua kemungkinan tersebut.

Tentunya dibutuhkan resource yang berskala besar untuk menangani komputasi pencarian pohon solusi tersebut berhubung kombinasi kemungkinan untuk sebuah permainan catur pada setiap geraknya sangat banyak sekali.

Berbeda dengan permainan catur, permainan tic-tac-toe ini mempunyai lebih sedikit kemungkinan solusi, sehingga kita akan mempunyai cukup komputasi untuk memainkan setiap kombinasi langkah dari setiap posisi dan kondisi. Namun hal ini dapat dihindari dengan membatasi sejauh mana komputer akan menganalisis hasil dari langkahlangkah yang mungkin (menentukan kedalaman pohon). Tetapi dengan hal ini, kita harus menambah

Page 6: Game Tic Tac Toe Final

kedalaman pohon tersebut setiap langkahnya agar kedalaman pohon pada state tersebut sama dengan state sebelumnya.

Algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan akan dihitung dengan algoritma yang sama dan seterusnya. Ini berarti, pada langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer itu sendiri mendapatkan keuntungan maksimum.

Dalam penentuan keputusan tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heurisitic untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Biasanya pada permainan tic-tac-toe ini digunakan nilai 1,0,-1 untuk mewakilkan hasil akhir permainan berupa menang, seri, dan kalah. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristic yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer.

Pemakaian algoritma untuk permainan tictac-toe adalah sebagai berikut :

IF ada langkah kemenangan THEN pilihlangkah tersebut. ELSE IF lawan mempunyai 2 spot terisidalam satu garis dengan spot ketiga masihkosong THEN tutup langkah tersebut (isispot kosong ketiga tersebut). ELSE melangkah ke state yang mempunyaikemungkinan menang tertinggi (berdasarkannilai heuristic yang dibangkitkan).

PENERAPAN ALGORITMA MINIMAX

Anggap lah ada 2 pemain A dan B. Jika pemain A bisa menang dalam 1 langkah, maka langkah tersebut adalah langkah kemenangannya. Jika pemain B mengetahui bahwa langkah tersebut akan mengarahkan ke hasil akhir dimana pemain A akan menang, dan di lain kondisi ada langkah lain yang akan mengarahkan ke hasil akhir seri, maka langkah terbaik untuk pemain B adalah langkah yang akan mengarahkan hasil akhir permainan ke hasil seri. Di setiap tahap algoritma ini mengasumsikan bahwa pemain A mencoba untuk memaksimalisasi peluang menang. Di lain pihak, pada giliran berikutnya pemain B akan mencoba meminimalisir peluang menang untuk pemain A. Oleh karena itu, A disebut juga maximizing player (MAX) dan B disebut juga minimizing player (MIN).

Page 7: Game Tic Tac Toe Final

Pembentukan pohon pencarian solusi digunakan dengan menggunakan konsep depth-first, dimulai dari awal permainan sampai akhir permainan. Setelah itu, posisi akhir permainan dievaluasi melalui sudut pandang MAX seperti gambar dibawah ini :

Gambar 2. Representasi pohon pencarian pada algoritma minimax.

Setelah itu nilai dari setiap simpul diisi dari bawah ke atas dengan nilai yang sudah dievaluasi oleh fungsi heuristic. Simpul milik pemain A (MAX) menerima nilai maksimum dari simpul-simpul anaknya. Simpul milik pemain B (MIN) akan memilih nilai minimum dari simpul anak-anaknya.

Contoh:

Page 8: Game Tic Tac Toe Final

Referensi:

http://webmail.informatika.org/%7Erinaldi/Stmik/2006-2007/Makalah_2007/MakalahSTMIK2007-024.pdf

www.informatika.org/~rinaldi/.../MakalahSTMIK2007-024.pdf

http://ce6388.blogspot.com/2009/03/aplikasi-multimedia-game-tac-tic-toe_14.html