Tic-Tac-Toe adalah sebuah permainan sederhana yang hanya membutuhkan sebuah kertas dan alat tulis yang dimainkan oleh 2 orang pemain. Cara memainkan game ini juga sangat sederhana, pemain akan bergiliran mengisi papan permainan 3 x 3 dengan tanda X dan O supaya menjadi sebuah garis dengan tanda yang sama dan pemain bisa menghalangi pemain lain supaya tidak bisa membuat garis dengan tanda yang sama. Apabila ada salah satu pemain yang telah berhasil membuat garis dengan tanda yang sama, maka pemain itu dinyatakan sebagai pemenang.
Seiring perkembangan teknologi, permainan-permainan telah banyak di implementasikan ke dalam teknologi komputer. Salah satunya adalah permaianan Tic-Tac-Toe, permainan ini sudah banyak di implementasikan ke dalam teknologi komputer dengan berbagai bahasa pemrograman. Biasanya, permaianan Tic-Tac-Toe dimainkan oleh 2 pemain, tetapi pada teknologi komputer, permainan ini bisa menggunakan komputer sebagai lawan kita dengan bantuan Artificial Intelligence (AI) atau kecerdasan buatan.
Di bawah ini akan dijelaskan secara singkat perancangan game dan video cara memainkan game Tic-Tac-Toe dengan bahasa pemrograman Python.
Mengimport modul random dan sys. Modul random adalah modul yang menyediakan fast pseudorandom number generator (menghasilkan angka secara acak atau random) berdasarkan algoritma Mersenne Twister. Sedangkan, Modul sys adalah modul yang digunakan untuk mengakses konfigurasi interpreter pada saat runtime dan berinteraksi dengan environment sistem operasi.
import random
import sys
Membuat perulangan for dengan range angka 0 sampai 9 ke dalam variabel bernama board.
board=[i for i in range(0,9)]
player, computer = '',''
Membuat variabel gerakan atau pergerakan yang dilakukan oleh komputer.
# Corners, Center and Others, respectively
moves=((1,7,3,9),(5,),(2,4,6,8))
Membuat kombinasi angka pada papan sebagai kondisi memenangkan permainan.
# Winner combinations
winners=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))
Membuat tabel dengan range dari 1 sampai 10.
# Table
tab=range(1,10)
Membuat sebuah fungsi yang digunakan untuk membuat papan permainan dengan ukuran 3 x 3 (9 kotak).
def print_board():
x=1
for i in board:
end = ' | '
if x%3 == 0:
end = ' \n'
if i != 1: end+='---------\n';
char=' '
if i in ('X','O'): char=i;
x+=1
print(char,end=end)
Membuat sebuah fungsi untuk menentukan huruf X atau O ke pemain secara acak.
def select_char():
chars=('X','O')
if random.randint(0,1) == 0:
return chars[::-1]
return chars
Membuat sebuah fungsi yang digunakan untuk kita sebagai pemain untuk bergerak mengisi kotak.
def can_move(brd, player, move):
if move in tab and brd[move-1] == move-1:
return True
return False
Membuat sebuah fungsi untuk kondisi dalam menentukan pemain memenangkan permaianan atau kalah dalam permaianan.
def can_win(brd, player, move):
places=[]
x=0
for i in brd:
if i == player: places.append(x);
x+=1
win=True
for tup in winners:
win=True
for ix in tup:
if brd[ix] != player:
win=False
break
if win == True:
break
return win
Membuat sebuah fungsi yang digunakan untuk pemain bisa bergerak untuk mengisi tanda di kotak permaianan.
def make_move(brd, player, move, undo=False):
if can_move(brd, player, move):
brd[move-1] = player
win=can_win(brd, player, move)
if undo:
brd[move-1] = move-1
return (True, win)
return (False, False)
Membuat sebuah fungsi yang digunakan untuk menambahkan Artificial Intelligence (AI) atau kecerdasan buatan pada pemain bot (komputer) di permaianan Tic-Tac-Toe. Dimana fungsi ini akan berguna untuk menentukan pemain bot (komputer) untuk bergerak mengisi kotak dengan tanda yang telah ditentukan, bisa untuk memblock tanda atau huruf pemain lawan, atau mengisi kotak lain untuk memenangkan atau membuat seri permainan.
def computer_move():
move=-1
# If I can win, others don't matter.
for i in range(1,10):
if make_move(board, computer, i, True)[1]:
move=i
break
if move == -1:
# If player can win, block him.
for i in range(1,10):
if make_move(board, player, i, True)[1]:
move=i
break
if move == -1:
# Otherwise, try to take one of desired places.
for tup in moves:
for mv in tup:
if move == -1 and can_move(board, computer, mv):
move=mv
break
return make_move(board, computer, move)
Fungsi ini digunakan untuk mengakhiri permainan dengan kondisi papan telah terisi penuh, yaitu 9 kotak.
def space_exist():
return board.count('X') + board.count('O') != 9
Fungsi di bawah merupakan fungsi utama dari permaianan ini dengan menghubungkan fungsi-fungsi yang telah dibuat di atas untuk ditampilkan atau dijalankan. Dan juga menambahkan keterangan yang akan ditampilkan ke layar berupa kalimat, seperti kalimat untuk mengisi kotak, kesalahan input huruf atau tanda pada kotak yang telah terisi, dan keterangan menang atau kalah dalam permainan ini.
player, computer = select_char()
print('Player is [%s] and computer is [%s]' % (player, computer))
result='%%% Deuce ! %%%'
while space_exist():
print_board()
print('# Make your move ! [1-9] : ', end='')
move = int(input())
moved, won = make_move(board, player, move)
if not moved:
print(' >> Invalid number ! Try again !')
continue
#
if won:
result='*** Congratulations ! You won ! ***'
break
elif computer_move()[1]:
result='=== You lose ! =='
break;
print_board()
print(result)
Berikut adalah video cara memainkan game Tic-Tac-Toe :
Komentar
Posting Komentar