TIC TAC TOE v1.0 by FrdCkp dengan bahasa C.
NAMA: FARID INAWAN KELAS: B NIM: 35102 MAHASISWA S1TE FT UGM 2009
1 PENGANTAR Alhamdulliah, puji syukur atas kehadirat-Nya, atas limpahan rahmat dan anugrah-Nya sehingga saya dapat menyelesaikan laporan ini dan sebuah Console Application yang bergenre Game dengan sangat baik. Jujur saja saya dapat pelajaran bahasa C sejak duduk dibangku kuliah ini. Tapi atas jasa Dosen kami yang membangkitkan persaingan dalam pembuatan program menggunakan bahasa C, sehingga kami lebih maju dari kelas-kelas yang lainnya. Dan sebuah Console Application yang saya buat ini adalah syarat untuk mendapatkan nilai UTS. Saya mengucapkan banyak terima kasih kepada Dosen saya sendiri, teman-teman saya, pacar saya yang secara tidak langsung mensupport saya, orang tua, saudara-saudara, dan Facebook. Aplikasi yang saya buat dengan segenap tenaga ini, saya yakin masih banyak kekurangan. Kritik dan saran bisa disampaikan ke Farid Inawan di
[email protected].
FrdCkp
1-1
2 SEPATAH KATA DARI PEMBUAT Saya menggunakan program DEV C++ v4.9.9.2 untuk membuat Console Application ini. Tapi agar bisa berwarna, DEV C++ nya di update dengan menginstall Conio v2. Dengan mengupdate Conio v2, anda dapat memiliki header conio2.h. Anda harus membuat project agar bisa memakai conio2.h. Kemudian pilih pada menu bar: Project >> Project Option >> Parameter. Pada kotak dibawah linker diisi “–lconio” (tidak usah pakai tanda petik. Kemudian add library dan cari file libconio.a pada folder lib di folder devcpp. Terima kasih atas perhatiannya.
Yogyakarta, 26 Oktober 2009 Farid Inawan
FrdCkp
2-2
3 STRUKTUR PROGRAM TIC TAC TOE v1.0 by FrdCkp 3.1 main.c Pada program utamanya (main.c) saya hanya mengisinya dengan link. Pertama ke fungsi loading(), setelah itu ke fungsi menu().
3.2 loading.c Fungsi loading yang ada di loading.c menampilkan program sedang loading.
3.3 menu.c Dari fungsi main(), masuk ke fungsi menu(). Pada fungsi menu() terdapat fungsi title() untuk menampilkan title() dan menuboard() yang menampilkan board sebagai hiasan pada menu utama. Kemudian setelah menampilkan Judul dan Hiasan pada menu utama, saya membuat 4 pilihan: 1. Mainkan Tic Tac Toe 2. Petunjuk 3. Tentang 4. Keluar Sebelum menjelaskan link yang saya buat jika anda pilih 1, bolehkan saya menjelaskan jika anda memilih 2, 3, atau 4. Jika anda pilih 2 maka anda akan masuk ke fungsi petunjuk(). Jika anda pilih 3 maka akan masuk ke fungsi tentang(). Dan terakhir, jika anda tekan 4 maka akan keluar dari program, tapi sebelum keluar program anda masuk ke fungsi pesan(). Nah jika anda pilih 1 maka akan dibawa kefungsi loading(), setelah selesai anda akan dibawa kefungsi namamu(), dan terkahir ke fungsi mainkan().
3.4 petunjuk.c Isi dari fungsi petunjuk() hanya tulisan petunjuk cara memainkan Tic Tac Toe dan petunjuk dalam menjalankan program ini. Setelah itu kembali ke fungsi menu().
FrdCkp
3-3
3.5 tentang.c Isi dari fungsi tentang() hanya tulisan tentang pembuat prgram ini. Setelah itu kembali ke fungsi menu().
3.6 pesan.c Isi dari fungsi tentang() hanya sebuah pesan agar para pembuat program tetap semangat. Setelah itu kembali ke fungsi menu().
3.7 namamu.c Pada fungsi namamu(), anda akan dimintai nama, sehingga benar-benar seperti anda yang bertanding melawan saya sendiri (FrdCkp). Jika anda sudah memainkan pasti mengerti apa yang saya maksud.
3.8 mainkan.c Pada fungsi mainkan saya akan menjelaskan cara kerja program saya. Pada langkah player, bisa langsung masukkan pilihan antara 1-9, namun jika yang dipilih itu sudah diisi O atau X, maka akan muncul warning dan mengulang untuk memasukkan pilihan. Pada langkah komputer, dibagi mencadi 4 kondisi. Langkah pertama komputer, kedua, sampai keempat. Langkah pertama komputer di set apabila angka 5 (bagian tengah) belum terebut, maka langsung merebut angka 5. Tapi apabila sudah direbut, maka langkah pertama komputer adalah random, tapi di sudut-sudut (1, 3, 7, 9). Langkah kedua komputer ada empat kondisi. Pertama saat kondisi player akan jadi, maka komputer akan mencegahnya, baik horizontal diagonal maupun diagonal. Kedua saat kondisi dimana saat kondisi player sudah membentuk dua X, namun ternyata sudah dihalangi, misal kondisi seperti dibawah ini: X O X
FrdCkp
3-4
atau O X X Maka komputer saya program agar tidak melangkah ke tempat yang bisa membuatnya kalah. Kondisi ketiga adalah kondisi khusus yang apabila tidak diperhitungkan, maka komputer bisa kalah. Kondisi tersebut adalah sebagai berikut: X X
O
Oleh karena itu saya memprogram juga agar komputer dapat menang. Kondisi keempat adalah sebagai berikut: X O X Apa bila terjadi hal seperti ini maka komputer sudah saya program dan PASTI menang. Pada kondisi yang keempat ini saya program jalannya komputer (O) menggunakan random. Sekian pada langkah ke dua komputer. Langkah ketiga komputer ada beberapa kondisi juga. Kondisi pertama adalah mengecek sekiranya ada yang dua O yang tidak dicegah, maka langsung saja komputer dapat memenangkan pertandingan. Jika kondisi pertama tidak ada, maka mengecek kondisi kedua. Kondisi kedua adalah mengecek apakah X
FrdCkp
3-5
sudah ada yang mau jadi? Jika iya maka langsung dihalangi. Dicek dengan urutan Horizonatal, kemudian Vertikal, dan terakhir Diagonal. Kemudian kondisi ketiga adalah apabila kedua kondisi diatas tidak ada. Namun pada kondisi ketiga ini, apabila melakukan kesalahan maka berakibat fatal. Contoh kondisi ke tiga adalah:
O
X
O
O
X
X
O
Saya memprogram agar komputer tidak jalan ke yang warna merah. Karena apabila jalan kesana maka akan berahir seri. Padahal dengan kondisi seperti itu, komputer dapat memenangkan pertandingan. Kemudian kondisi keempat adalah dimana ketiga kondisi diatas tidak ada. Pada kondisi keempat di langkah ke tiga komputer ini, komputer saya buat random. Dan akhirnya kita sampai pada langkah terakhir komputer, langkah keempat. Di langkah ke empat ini hanya ada 3 kondisi. Kondisi pertama dimana ada dua O yang bisa dimenangkan, kondisi kedua adalah mencegah X agar tidak menang, dan kondisi terakhir adalah apabila ketiga kondisi diatas tidak ada. Maka komputer berjlan secara random. Setelah pertandingan ada pemenangnya, dibuat fitur dimana pemain dapat kembali bermain tanpa harus kembali kemenu. Kemudian pada fungsi mainkan terdapat link ke fungsi-fungsi pada dialog.c. Sekian penjelasan pada fungsi mainkan().
3.9 dialog.c pada dialog.c ini ada beberapa fungsi, ada menang(), kalah (), draw(), dll. Semua isi dari fungsi itu hanya sebuah dialog yang mengungkapkan perasaan saya yang sesungguhnya saat bermain dengan anda.
FrdCkp
3-6