Minggu, 03 Mei 2015

tutorial tic tac toe C#


SetelahBeberapa kali membuataplikasiberbasis c#, maka kali inikitaakanmemcobamembuatsebuah game sederhanaberbasis C#. Game tersebutadalah Tic Tac Toe. gameiniadalah game yang sangat simple dantermasuk game yang lama karenasaatini game sudahmenggunakankeindahan graphic dalampermainannyaseperti GTA dan PESdll.
pertama- tama siapkanterlebihdahulu:
1. Microsoft Visual Studio. bisadigantidenganaplikasisejenis yang memilikibahasapemograman c#.
2. Baca Doa


 

langkah – langkahawalnyasamaseperti post sebelumnyayaitumembukaaplikasi visual studio danmembuat project baru . setelahitudapatmengikutilangkah-langkahdibawahini:
1. Desainlahtampilan form menjadisepertiini










untuk properties name dllterserahsajatetapi di sesuaikan di programnya. intinyaadalahmenggunakanpicturebox 3×3 jadi 9 Labelsepertigambar di atas.
2. klikkananlaluklik view code danbuat program sepertidibawahinitetapinama properties darisetiapkomponen di sesuaikandengan yang teman-temanbuat.
using System;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;

namespacetictactoe
{
publicpartialclassForm1 : Form
    {

public Form1()
        {
InitializeComponent();
reset();
        }
int[,] pos = newint[3, 3];
int count, val, a, b, c = 1, d = 1, diff = 1, vs = 1;
char let;
String pl1 = "you", pl2 = "komputer";
Randomrandom = newRandom();
bool turn = true;

void reset()
        {
for (inti = 0 ; i< 3 ; i++)
            {
for (int j = 0 ; j < 3 ; j++)
                {
pos[i , j]=0;
                }
            }
foreach(Control ctrl inthis.Controls)
            {
if(ctrl isLabel)
                {
ctrl.ResetText();
                }
            }
count = 0;
val = 1;
let = 'X';
                label10.Text = pl1 + "sekarang main";
        }
bool play(int l, int m)
        {
if (pos[l, m] == 0)
            {
                a = c;
                b = d;
                c = l;
                d = m;
Label ctrl = link(l, m);
ctrl.Text = let.ToString();
pos[l, m] = val;
flip();
checkwin(l, m, pos[l, m]);
returntrue;
            }
else
            {
returnfalse;
            }
        }
Labellink(int l, int m)
        {
if (l == 0)
            {
if (m == 0)
return label1;
if (m == 1)
return label2;
if (m == 2)
return label3;
            }
if (l == 1)
            {
if (m == 0)
return label4;
if (m == 1)
return label5;
if (m == 2)
return label6;
            }
if (l == 2)
            {
if (m == 0)
return label7;
if (m == 1)
return label8;
if (m == 2)
return label9;
            }
returnnull;
        }
void flip()
        {
if (let == 'X')
            {
let = 'O';
val = 4;
count++;
            }
else
            {
let = 'X';
val = 1;
count++;
            }
        }
voidcheckwin(int l, int m, int n)
        {
if (count == 1)
if (vs == 1)
turn = true;
if (count > 4)
            {
if ((pos[l, 0] + pos[l, 1] + pos[l, 2] == n * 3) || (pos[0, m] + pos[1, m] + pos[2, m] == n * 3))
                {
count = n;
                }
else
                {
if ((pos[0, 0] + pos[1, 1] + pos[2, 2] == n * 3) || (pos[2, 0] + pos[1, 1] + pos[2, 0] == n * 3))
                    {
count = n;
                    }
else
                    {
if (count == 9)
                        {
count = 0;
                        }
                    }
                }
if (count == 1 || count == 0)
                {
if (count == 1)
declare(pl1 + "(playing X) Wins!!!");
if (count == 0)
declare("the game is draw!!!");
reset();
if (vs == 1)
if (pl1 == "Computer")
                        {
turn = false;
compplay(val);
                        }
else
turn = false;
                }
else
if (count == 4)
                    {
declare(pl2 + "(playing O) Wins!!!");
String temp = pl1;
                        pl1 = pl2;
                        pl2 = temp;
reset();
if (vs == 1)
if (pl1 == "Computer")
compplay(val);
else
turn = false;
                    }
            }
        }
void declare(Stringstmt)
        {
if(MessageBox.Show(stmt+"Do you want to continue ?","",MessageBoxButtons.YesNo,MessageBoxIcon.Question)!=DialogResult.Yes)
            {
Application.Exit();
            }
        }
voidcompplay(int n)
        {
bool carry = true;
if(diff==3)
carry=winorstop(a, b, n);
if((diff == 2||diff == 3) && carry)
            {
if(n==1)
carry = winorstop(c, d, 4);
else
carry = winorstop(c, d, 1);
            }
if(carry)
doany();
        }
boolwinorstop(int l, int m, int n)
        {
if(pos[l,0]+pos[l,1]+pos[l,2] == n*2)
            {
for(inti = 0; i<3 ; i++)
                {
if(play (l,i))
returnfalse;
                }
            }
else
if(pos[0,m]+pos[1,m]+pos[2,m] == n*2)
                {
for(inti = 0; i<3 ; i++)
                    {
if(play(i,m))
returnfalse;
                    }
                }
else
if(pos[0,m]+pos[1,m]+pos[2,m] == n*2)
                    {
for (inti=0 ; i<3 ; i++)
                        {
if(play(i,m))
returnfalse;
                        }
                    }
else
if(pos[0,0]+pos[1,1]+pos[2,2] == n*2)
                        {
for(inti=0;i<3;i++)
                            {                              
                                {
if(play(i,i))
returnfalse;
                                }
                            }
                        }
else
if(pos[2,0]+pos[1,1]+pos[0,2] == n*2)
                            {
for(inti=0,j=2;i<3;i++,j--)
                                {
if(play(i,j))
returnfalse;
                                }
                            }
returntrue;
        }
voiddoany()
        {
int l=2, m=0;
switch(count)
            {
case 0: play(0, 0);
break;
case 1: if(!(play(1,1)))play(0,0);
break;
case 2: if(!(play(2,2)))play(0,2);
break;
case 3: if((pos[0,1]+pos[1,1]+pos[2,1])==val)play(0,1);
else
if((pos[1,0]+pos[1,1]+pos[1,2])==val)play(1,0);
else
if
                                    (pos[0,1]!=0)play(0,2);
else
play(2,0);
break;
default :while(!(play(l,m)))
                {
                    l=random.Next(3);
                    m=random.Next(3);
                }
break;
            }
        }

voideasyToolStripMenuItem_Click(object sender, EventArgs e)
        {
onlyone();
easyToolStripMenuItem.Checked = true;
diff = 1;
        }

voidmediumToolStripMenuItem_Click(object sender, EventArgs e)
        {
onlyone();
mediumToolStripMenuItem.Checked = true;
diff = 2;
        }

voidhardToolStripMenuItem_Click(object sender, EventArgs e)
        {
onlyone();
hardToolStripMenuItem.Checked = true;
diff = 3;
        }
voidonlyone()
        {
easyToolStripMenuItem.Checked = false;
mediumToolStripMenuItem.Checked = false;
hardToolStripMenuItem.Checked = false;
        }

voidvsComputerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pl1 = "You";
            pl2 = "Computer";
reset();
vsComputerToolStripMenuItem.Checked = true;
vsPlayerToolStripMenuItem.Checked = false;
vs = 1;
        }

voidvsPlayerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pl1 = "Player 1";
            pl2 = "Player 2";
reset();
vsComputerToolStripMenuItem.Checked = false;
vsPlayerToolStripMenuItem.Checked = true;
vs = 2;
turn = false;
        }

voidnewGameToolStripMenuItem_Click(object sender, EventArgs e)
        {
if (vs == 1)
            {
                pl1 = "You";
                pl2 = "Computer";
            }
else
            {
                pl1 = "Player 1";
                pl2 = "Player 2";
            }
reset();
        }

voidexitToolStripMenuItem_Click(object sender, EventArgs e)
        {
Application.Exit();
        }
privatevoid label1_Click(object sender, EventArgs e)
        {
if (play(0, 0) && turn == true)
compplay(val);
        }

privatevoid label2_Click(object sender, EventArgs e)
        {
if(play(0,1)&&turn==true)
compplay(val);
        }

privatevoid label3_Click(object sender, EventArgs e)
        {
if (play(0, 2) && turn == true)
compplay(val);
        }

privatevoid label4_Click(object sender, EventArgs e)
        {
if (play(1, 0) && turn == true)
compplay(val);
        }

privatevoid label5_Click(object sender, EventArgs e)
        {
if (play(1, 1) && turn == true)
compplay(val);
        }

privatevoid label6_Click(object sender, EventArgs e)
        {
if (play(1, 2) && turn == true)
compplay(val);
        }

privatevoid label7_Click(object sender, EventArgs e)
        {
if (play(2, 0) && turn == true)
compplay(val);
        }

privatevoid label8_Click(object sender, EventArgs e)
        {
if (play(2, 1) && turn == true)
compplay(val);
        }

privatevoid label9_Click(object sender, EventArgs e)
        {
if (play(2, 2) && turn == true)
compplay(val);
        }



    }
}


lalucoba run denganmenekantombol play atautombol F5 pada keyboard.
gambardiatasadalahhasildari program yang sayabuat. semogateman-temanbisajugauntukmembuatnya.






0 komentar:

Posting Komentar