Selasa, 06 Mei 2014

Tutorial Program C# : Tic Tac Toe Game



Assalamulaikum Wr.Wb
Yang paling pertama pastinya ucapan syukur atas kehadirat Allah SWT yang mana udh ngasih ane kesempatan dan kelancaran ane dalam penjelasan sebuah program. Udh lama bgt ane g ngepost tutorial program lagi buat para programmer pemula.
Okeh kali ini tutorial ane membahasan tentang “Gaming Tic Tac Toe”. Game ini udh g asing lagi di telinga para gamer (kalo yang g tau game SOS iut lho broh). Pada dasarnya program ini menggunakan picturbox dan click pada even picturebox.

1.      Pertama kita buat seperti biasa sebuah New Solution > Pilih windows application

2.      Buat terlebih dahulu menustrip yang berisikan File > New Game & Exit, Help > About.
Setelah itu, buat 9 buah picturebox dengan ukuran 75,75 yang berguna sebagai media dasar tictactoe


4.      Dan tambahkan beberapa gambar di dalam picturebox. (kali ini kita masukkan gambar X dan O).



Terakhir kita buat sourcecodenya
 



 lingakaran 1 : merupakan sebuah variabel yang berguna untuk memudahkan pemanggilan sebuah button
kotak 1: merupakan sebuah perintah yang terdapat pada menu strip.


Ini adalah perintah program yang ketika button A1 di klik maka akan memunculkan gambar X dan ketika selesai di klik tidak dapat di klik lagi. Pikirankomp dan cek_yang_menang merupakan sebuah fungsi yang di miliki oleh AI

Ini dalam fungsinya



jika di lihat sekilas di dalam fungsi mirip dengan isi dalam perintah A1 ketika gbr1==0 maka muncul gambar O.


Ini di dalam fungsi cek_yang_menang





fungsi ini akan memeriksa apakah horisontal,vertikal,dan diagonal pemenang dari game ini dari gambar yang muncul. Misal X yang menang




Dan itulah program tic tac toenya..

Ini sourcecodenya secara lengkap





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string winner;
        public Form1()
        {
            InitializeComponent();
        }

        Image gambarX = Properties.Resources.x;
        Image gambarO = Properties.Resources.o;


        int gbr1 = 0, gbr2 = 0, gbr3 = 0, gbr4 = 0, gbr5 = 0, gbr6 = 0, gbr7 = 0, gbr8 = 0, gbr9 = 0;
        int hsl1 = 0, hsl2 = 0, hsl3 = 0, hsl4 = 0, hsl5 = 0, hsl6 = 0, hsl7 = 0, hsl8 = 0, hsl9 = 0;

        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("BY SANDY", "TIC TAC TOE");
        }

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void newGameToolStripMenuItem_Click(object sender, EventArgs e)
        {
            A1.BackgroundImage = null; A1.Enabled = true;
            A2.BackgroundImage = null; A2.Enabled = true;
            A3.BackgroundImage = null; A3.Enabled = true;
            B1.BackgroundImage = null; B1.Enabled = true;
            B2.BackgroundImage = null; B2.Enabled = true;
            B3.BackgroundImage = null; B3.Enabled = true;
            C1.BackgroundImage = null; C1.Enabled = true;
            C2.BackgroundImage = null; C2.Enabled = true;
            C3.BackgroundImage = null; C3.Enabled = true;

            gbr1 = gbr2 = gbr3 = gbr4 = gbr5 = gbr6 = gbr7 = gbr8 = gbr9 = 0;
            hsl1 = hsl2 = hsl3 = hsl4 = hsl5 = hsl6 = hsl7 = hsl8 = hsl9 = 0;
        }

        private void A1_Click(object sender, EventArgs e)
        {
           if (gbr1 == 0)
           {
                A1.BackgroundImage = gambarX;
                gbr1++; //gbr = gbr+1
                hsl1 = hsl1 + 1; // hsl = hsl+1
           }

           A1.Enabled = false;
           pikirankomp();
           cek_yang_menang();
        }

        private void A2_Click(object sender, EventArgs e)
        {
            if (gbr2 == 0)
            {
                A2.BackgroundImage = gambarX;
                gbr2++;
                hsl2++;
            }

            A2.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void A3_Click(object sender, EventArgs e)
        {
            if (gbr3 == 0) //Banyak klik
            {
                A3.BackgroundImage = gambarX;
                gbr3++;
                hsl3++;
            }

            A3.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void B1_Click(object sender, EventArgs e)
        {
            if (gbr4 == 0) //Banyak klik
            {
                B1.BackgroundImage = gambarX;
                gbr4++;
                hsl4++;
            }

            B1.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void B2_Click(object sender, EventArgs e)
        {
            if (gbr5 == 0) //Banyak klik
            {
                B2.BackgroundImage = gambarX;
                gbr5++;
                hsl5++;
            }
           
            B2.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void B3_Click(object sender, EventArgs e)
        {
            if (gbr6 == 0) //Banyak klik
            {
                B3.BackgroundImage = gambarX;
                gbr6++;
                hsl6++;
            }
           
            B3.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void C1_Click(object sender, EventArgs e)
        {
            if (gbr7 == 0) //Banyak klik
            {
                C1.BackgroundImage = gambarX;
                gbr7++;
                hsl7++;
            }
           
            C1.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void C2_Click(object sender, EventArgs e)
        {
            if (gbr8 == 0) //Banyak klik
            {
                C2.BackgroundImage = gambarX;
                gbr8++;
                hsl8++;
            }
           
            C2.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        private void C3_Click(object sender, EventArgs e)
        {
            if (gbr9 == 0) //Banyak klik
            {
                C3.BackgroundImage = gambarX;
                gbr9++;
                hsl9++;
            }
           
            C3.Enabled = false;
            pikirankomp();
            cek_yang_menang();
        }

        void komputer() //fungsi AI( Player VS Komputer)
        {
         
           if(gbr1 == 0)
            {
                A1.BackgroundImage = gambarO;
                gbr1 = gbr1 + 2;
                A1.Enabled = false;
            }

           else if (gbr2 == 0)
           {
               A2.BackgroundImage = gambarO;
               gbr2 = gbr2 + 2;
               A2.Enabled = false;
           }

           else if (gbr3 == 0)
            {
                A3.BackgroundImage = gambarO;
                gbr3 = gbr3 + 2;
                A3.Enabled = false;
            }

            else if (gbr4 == 0)
            {
                B1.BackgroundImage = gambarO;
                gbr4 = gbr4 + 2;
                B1.Enabled = false;
            }

            else if (gbr5 == 0)
            {
                B2.BackgroundImage = gambarO;
                gbr5 = gbr5 + 2;
                B2.Enabled = false;
            }

            else if (gbr6 == 0)
            {
                B3.BackgroundImage = gambarO;
                gbr6 = gbr6 + 2;
                B3.Enabled = false;
            }

            else if (gbr7 == 0)
            {
                C1.BackgroundImage = gambarO;
                gbr7 = gbr7 + 2;
                C1.Enabled = false;
            }

            else if (gbr8 == 0)
            {
                C2.BackgroundImage = gambarO;
                gbr8 = gbr8 + 2;
                C2.Enabled = false;
            }

            else if (gbr9 == 0)
            {
                C3.BackgroundImage = gambarO;
                gbr9 = gbr9 + 2;
                C3.Enabled = false;
            }
          
        }

        void pikirankomp()
        {


             if (gbr1 == 1)
             {
                komputer();
                gbr1++;
             }
           
            else if (gbr2 == 1)
            {
                komputer();
                gbr2++;
            }

            else if (gbr3 == 1)
            {
                komputer();
                gbr3++;
            }

            else if (gbr4 == 1)
            {
                komputer();
                gbr4++;
            }

            else if (gbr5 == 1)
            {
                komputer();
                gbr5++;
            }

            else if (gbr6 == 1)
            {
                komputer();
                gbr6++;
            }

            else if (gbr7 == 1)
            {
                komputer();
                gbr7++;

            }

            else if (gbr8 == 1)
            {
                komputer();
                gbr8++;
            }

            else if (gbr9 == 1)
            {
                komputer();
                gbr9++;
            }
        }

        void cek_yang_menang()
        {
            
            //horisontal X
            if (hsl1 == 1 && hsl2 == 1 && hsl3 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            else if (hsl4 == 1 && hsl5 == 1 && hsl6 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            else if (hsl7 == 1 && hsl8 == 1 && hsl9 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            //vertikal
            else if (hsl1 == 1 && hsl4 == 1 && hsl7 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            else if (hsl2 == 1 && hsl5 == 1 && hsl8 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            else if (hsl3 == 1 && hsl6 == 1 && hsl9 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            //diagonal
            else if (hsl1 == 1 && hsl5 == 1 && hsl9 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }

            else if (hsl3 == 1 && hsl5 == 1 && hsl7 == 1)
            {
                MessageBox.Show("X_.Wins!", "Congratulation!");
                A1.Enabled = false;
                A2.Enabled = false;
                A3.Enabled = false;
                B1.Enabled = false;
                B2.Enabled = false;
                B3.Enabled = false;
                C1.Enabled = false;
                C2.Enabled = false;
                C3.Enabled = false;
            }


        }
    }
}





Ini videonya :