Tic-Tac-Toe ialah sebuah permainan sederhana yang memfokuskan pada pembuatan 3 buah obyek yang di susun secara sejajar. Setiap pemain harus bisa membuat maupun menghentikan lawan dalam penyusunannya. Pemain di nyatakan menang jika berhasil membuat 3 obyek yang sejajar (serta mewakili pemain tersebut). Pemain di nyatakan kalah jika musuh berhasil membuat 3 obyek yang sejajar (serta mewakili musuh tersebut). Dan, permainan di nyatakan imbang jika tidak ada yang berhasil untuk menjajarkan 3 buah obyek yang mewakili salah satu pemain.
Pada artikel kali ini, kita akan membuat permainan Tic-Tac-Toe menggunakan salah satu bahasa pemrograman Windows, yaitu Batch (atau yang biasanya di kenal sebagai .bat / .cmd) .
Sebelumnya, persiapkan text editor (Notepad, Sublime Text, dan sebagainya) untuk pembuatan permainan.
Cara Membuat Game TicTacToe di Windows
1. Buka Notepad atau aplikasi text editor yang lain. Masukkan kode berikut:
@echo off title Tic-Tac-Toe (X - O) REM Tampilan Awal echo Selamat Datang Di Permainan Tic-Tac-Toe! echo -------------------------------------- echo Anda = X, Komputer = O. echo Tekan Angka 1-9 Untuk Memilih Posisi Anda. echo. pause :MULAIPERMAINAN REM Mulai Visualisasi Permainan cls set /a posisi1=1 set /a posisi2=2 set /a posisi3=3 set /a posisi4=4 set /a posisi5=5 set /a posisi6=6 set /a posisi7=7 set /a posisi8=8 set /a posisi9=9 set /a jumlahputaran=0 :GILIRANPEMAIN REM Pemain Memulai Permainan cls echo Jumlah Giliran: %jumlahputaran% echo. echo %posisi1% %posisi2% %posisi3% echo ------- echo %posisi4% %posisi5% %posisi6% echo ------- echo %posisi7% %posisi8% %posisi9% echo. echo Lokasi Selanjutnya? set /p "pilihanpemain=>" if "%pilihanpemain%"=="1" if "%posisi1%"=="1" ( set posisi1=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="2" if "%posisi2%"=="2" ( set posisi2=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="3" if "%posisi3%"=="3" ( set posisi3=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="4" if "%posisi4%"=="4" ( set posisi4=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="5" if "%posisi5%"=="5" ( set posisi5=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="6" if "%posisi6%"=="6" ( set posisi6=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="7" if "%posisi7%"=="7" ( set posisi7=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="8" if "%posisi8%"=="8" ( set posisi8=X goto :GILIRANPEMAINEND ) if "%pilihanpemain%"=="9" if "%posisi9%"=="9" ( set posisi9=X goto :GILIRANPEMAINEND ) echo. echo Pilihan Anda Salah / Tidak Tersedia! pause goto :GILIRANPEMAIN :GILIRANPEMAINEND REM Akhiri Permainan Pemain set /a jumlahputaran+=1 goto :CEKKONDISI :GILIRANPERTAMACOM REM Mulai Permainan Pertama Untuk Komputer if not %posisi5%== X set posisi5=O if %posisi5%== X set posisi1=O set /a jumlahputaran+=1 goto :CEKKONDISI :GILIRANCOM REM Mulai Permainan Selanjutnya Untuk Komputer if "%posisi1%"=="O" if "%posisi2%"=="O" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi4%"=="O" if "%posisi5%"=="O" if "%posisi6%"=="6" ( set posisi6=O goto :GILIRANCOMEND ) if "%posisi7%"=="O" if "%posisi8%"=="O" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi1%"=="O" if "%posisi4%"=="O" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi2%"=="O" if "%posisi5%"=="O" if "%posisi8%"=="8" ( set posisi8=O goto :GILIRANCOMEND ) if "%posisi3%"=="O" if "%posisi6%"=="O" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi3%"=="O" if "%posisi2%"=="O" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi6%"=="O" if "%posisi5%"=="O" if "%posisi4%"=="4" ( set posisi4=O goto :GILIRANCOMEND ) if "%posisi9%"=="O" if "%posisi8%"=="O" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi7%"=="O" if "%posisi4%"=="O" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi8%"=="O" if "%posisi5%"=="O" if "%posisi2%"=="2" ( set posisi2=O goto :GILIRANCOMEND ) if "%posisi9%"=="O" if "%posisi6%"=="O" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi9%"=="O" if "%posisi5%"=="O" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi7%"=="O" if "%posisi5%"=="O" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi3%"=="O" if "%posisi5%"=="O" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi1%"=="O" if "%posisi5%"=="O" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi1%"=="O" if "%posisi3%"=="O" if "%posisi2%"=="2" ( set posisi2=O goto :GILIRANCOMEND ) if "%posisi3%"=="O" if "%posisi9%"=="O" if "%posisi6%"=="6" ( set posisi6=O goto :GILIRANCOMEND ) if "%posisi9%"=="O" if "%posisi7%"=="O" if "%posisi8%"=="8" ( set posisi8=O goto :GILIRANCOMEND ) if "%posisi7%"=="O" if "%posisi1%"=="O" if "%posisi4%"=="4" ( set posisi4=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi2%"=="X" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi4%"=="X" if "%posisi5%"=="X" if "%posisi6%"=="6" ( set posisi6=O goto :GILIRANCOMEND ) if "%posisi7%"=="X" if "%posisi8%"=="X" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi4%"=="X" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi2%"=="X" if "%posisi5%"=="X" if "%posisi8%"=="8" ( set posisi8=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi6%"=="X" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi2%"=="X" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi6%"=="X" if "%posisi5%"=="X" if "%posisi4%"=="4" ( set posisi4=O goto :GILIRANCOMEND ) if "%posisi9%"=="X" if "%posisi8%"=="X" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi7%"=="X" if "%posisi4%"=="X" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi8%"=="X" if "%posisi5%"=="X" if "%posisi2%"=="2" ( set posisi2=O goto :GILIRANCOMEND ) if "%posisi9%"=="X" if "%posisi6%"=="X" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi9%"=="X" if "%posisi5%"=="X" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi7%"=="X" if "%posisi5%"=="X" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi5%"=="X" if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi5%"=="X" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi3%"=="X" if "%posisi2%"=="2" ( set posisi2=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi9%"=="X" if "%posisi6%"=="6" ( set posisi6=O goto :GILIRANCOMEND ) if "%posisi9%"=="X" if "%posisi7%"=="X" if "%posisi8%"=="8" ( set posisi8=O goto :GILIRANCOMEND ) if "%posisi7%"=="X" if "%posisi1%"=="X" if "%posisi4%"=="4" ( set posisi4=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi9%"=="X" if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi1%"=="X" if "%posisi9%"=="X" if "%posisi6%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi7%"=="X" if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi3%"=="X" if "%posisi7%"=="X" if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) REM Cek Kondisi Permainan Komputer if "%posisi1%"=="1" ( set posisi1=O goto :GILIRANCOMEND ) if "%posisi2%"=="2" ( set posisi2=O goto :GILIRANCOMEND ) if "%posisi3%"=="3" ( set posisi3=O goto :GILIRANCOMEND ) if "%posisi4%"=="4" ( set posisi4=O goto :GILIRANCOMEND ) if "%posisi5%"=="5" ( set posisi5=O goto :GILIRANCOMEND ) if "%posisi6%"=="6" ( set posisi6=O goto :GILIRANCOMEND ) if "%posisi7%"=="7" ( set posisi7=O goto :GILIRANCOMEND ) if "%posisi8%"=="8" ( set posisi8=O goto :GILIRANCOMEND ) if "%posisi9%"=="9" ( set posisi9=O goto :GILIRANCOMEND ) REM Akhiri Permainan Komputer :GILIRANCOMEND set /a jumlahputaran+=1 goto :CEKKONDISI :CEKKONDISI REM Cek Kondisi Kemenangan Tiap Pemain if "%posisi1%"=="X" if "%posisi2%"=="X" if "%posisi3%"=="X" goto :KONDISIPEMAINMENANG if "%posisi4%"=="X" if "%posisi5%"=="X" if "%posisi6%"=="X" goto :KONDISIPEMAINMENANG if "%posisi7%"=="X" if "%posisi8%"=="X" if "%posisi9%"=="X" goto :KONDISIPEMAINMENANG if "%posisi1%"=="X" if "%posisi4%"=="X" if "%posisi7%"=="X" goto :KONDISIPEMAINMENANG if "%posisi2%"=="X" if "%posisi5%"=="X" if "%posisi8%"=="X" goto :KONDISIPEMAINMENANG if "%posisi3%"=="X" if "%posisi6%"=="X" if "%posisi9%"=="X" goto :KONDISIPEMAINMENANG if "%posisi1%"=="X" if "%posisi5%"=="X" if "%posisi9%"=="X" goto :KONDISIPEMAINMENANG if "%posisi3%"=="X" if "%posisi5%"=="X" if "%posisi7%"=="X" goto :KONDISIPEMAINMENANG if "%posisi1%"=="O" if "%posisi2%"=="O" if "%posisi3%"=="O" goto :KONDISIPEMAINKALAH if "%posisi4%"=="O" if "%posisi5%"=="O" if "%posisi6%"=="O" goto :KONDISIPEMAINKALAH if "%posisi7%"=="O" if "%posisi8%"=="O" if "%posisi9%"=="O" goto :KONDISIPEMAINKALAH if "%posisi1%"=="O" if "%posisi4%"=="O" if "%posisi7%"=="O" goto :KONDISIPEMAINKALAH if "%posisi2%"=="O" if "%posisi5%"=="O" if "%posisi8%"=="O" goto :KONDISIPEMAINKALAH if "%posisi3%"=="O" if "%posisi6%"=="O" if "%posisi9%"=="O" goto :KONDISIPEMAINKALAH if "%posisi1%"=="O" if "%posisi5%"=="O" if "%posisi9%"=="O" goto :KONDISIPEMAINKALAH if "%posisi3%"=="O" if "%posisi5%"=="O" if "%posisi7%"=="O" goto :KONDISIPEMAINKALAH REM Cek Kondisi Permainan if "%jumlahputaran%"=="0" goto :GILIRANPEMAIN if "%jumlahputaran%"=="1" goto :GILIRANPERTAMACOM if "%jumlahputaran%"=="2" goto :GILIRANPEMAIN if "%jumlahputaran%"=="3" goto :GILIRANCOM if "%jumlahputaran%"=="4" goto :GILIRANPEMAIN if "%jumlahputaran%"=="5" goto :GILIRANCOM if "%jumlahputaran%"=="6" goto :GILIRANPEMAIN if "%jumlahputaran%"=="7" goto :GILIRANCOM if "%jumlahputaran%"=="8" goto :GILIRANPEMAIN if "%jumlahputaran%"=="9" goto :GILIRANCOM if "%jumlahputaran%"=="10" goto :KONDISIIMBANG if "%jumlahputaran%"=="11" goto :KONDISIERROR :KONDISIERROR REM Jika Terjadi Error, Jalankan Perintah Ini cls echo Jumlah Giliran: %jumlahputaran% echo. echo %posisi1% %posisi2% %posisi3% echo ------- echo %posisi4% %posisi5% %posisi6% echo ------- echo %posisi7% %posisi8% %posisi9% echo. echo Terdapat kesalahan dalam program, silahkan tutup & jalankan kembali programnya. echo. pause goto :KELUARPERMAINAN :KONDISIPEMAINMENANG REM Jika Pemain Menang, Jalankan Perintah Ini cls echo Jumlah Giliran: %jumlahputaran% echo. echo %posisi1% %posisi2% %posisi3% echo ------- echo %posisi4% %posisi5% %posisi6% echo ------- echo %posisi7% %posisi8% %posisi9% echo. echo Selamat! Anda Menang! echo. pause goto :ULANGPERMAINAN :KONDISIPEMAINKALAH REM Jika Pemain Kalah, Jalankan Perintah Ini cls echo Jumlah Giliran: %jumlahputaran% echo. echo %posisi1% %posisi2% %posisi3% echo ------- echo %posisi4% %posisi5% %posisi6% echo ------- echo %posisi7% %posisi8% %posisi9% echo. echo Oops.. Komputer yang menang. echo. pause goto :ULANGPERMAINAN :KONDISIIMBANG REM Jika Pemain Imbang, Jalankan Perintah Ini cls echo Turn count: %jumlahputaran% echo. echo %posisi1% %posisi2% %posisi3% echo ------- echo %posisi4% %posisi5% %posisi6% echo ------- echo %posisi7% %posisi8% %posisi9% echo. echo Whoa! Nampaknya anda seri! echo. pause goto :ULANGPERMAINAN :ULANGPERMAINAN REM Konfirmasi Pengulangan Permainan echo. echo Apakah Anda Ingin Bermain Lagi? (Y/T) set /p "ULANGPERMAINAN=>" if "%ULANGPERMAINAN%"=="Y" goto :MULAIPERMAINAN if "%ULANGPERMAINAN%"=="y" goto :MULAIPERMAINAN if "%ULANGPERMAINAN%"=="T" goto :KELUARPERMAINAN if "%ULANGPERMAINAN%"=="t" goto :KELUARPERMAINAN :KELUARPERMAINAN
Lalu, simpan teks tersebut dengan ekstensi .bat / .cmd di belakang namanya (contoh: inwepo.bat). Nantinya, akan muncul sebuah file batch sesuai dengan nama yang telah di tetapkan.
2. Jalankan file batch yang telah di buat sebelumnya. Jika berhasil, nantinya kamu akan di sambut dengan halaman awal pada permainan. Klik tombol apapun pada keyboard untuk mulai memainkan permainan.
Seperti yang di lihat, permainan yang kita buat di khususkan untuk 1 pemain serta pemain tersebut akan melawan komputer. Jika kita ingin membuat permainan tersebut menjadi mekanisme 2 pemain (tidak ada komputer di dalamnya), maka pada bagian komputer, cukup ubah hasil responnya serta aturan mainnya.
Demikian tutorial cara membuat game TicTacToe di Windows. Semoga bermanfaat.