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
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
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.
0 komentar:
Posting Komentar