Selamat siang ,hari ini saya akan mengposting tentang cara membuat game tic tac toe di VB.Net
Kali ini saya menggunakan button create on the fly
Berikut Codingannya :
Public Class Form1
'true -> giliran player 1 X
'false -> giliran player 2 O
Dim flag As Boolean = True
Function cekbutton(btna As Button, btnb As Button, btnc As Button) As Integer
Dim menang As Integer = 0
If (btna.Text = btnb.Text) And (btnb.Text = btnc.Text) Then
If btna.Text = "X" Then
menang = 1
ElseIf btna.Text = "O" Then
menang = 2
End If
End If
Return menang
End Function
Sub cekmenang()
'0 -> blm ad yang menang
'1 -> player 1 yg menang
'2 -> player 2 yang menang
Dim menang As Integer = 0
Dim temp As Integer
'Horizontal
'temp = cekbutton(Button1, Button2, Button3)
'If temp = 1 Then
' menang = 1
'ElseIf temp = 2 Then
' menang = 2
'End If
If (Button1.Text = Button2.Text) And (Button2.Text = Button3.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button4.Text = Button5.Text) And (Button5.Text = Button6.Text) Then
If Button4.Text = "X" Then
menang = 1
ElseIf Button4.Text = "O" Then
menang = 2
End If
End If
If (Button7.Text = Button8.Text) And (Button8.Text = Button9.Text) Then
If Button7.Text = "X" Then
menang = 1
ElseIf Button7.Text = "O" Then
menang = 2
End If
End If
'Vertikal
If (Button1.Text = Button4.Text) And (Button4.Text = Button7.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button2.Text = Button5.Text) And (Button5.Text = Button8.Text) Then
If Button2.Text = "X" Then
menang = 1
ElseIf Button2.Text = "O" Then
menang = 2
End If
End If
If (Button3.Text = Button6.Text) And (Button6.Text = Button9.Text) Then
If Button3.Text = "X" Then
menang = 1
ElseIf Button3.Text = "O" Then
menang = 2
End If
End If
'Diagonal
If (Button1.Text = Button5.Text) And (Button5.Text = Button9.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button3.Text = Button5.Text) And (Button5.Text = Button7.Text) Then
If Button3.Text = "X" Then
menang = 1
ElseIf Button3.Text = "O" Then
menang = 2
End If
End If
If menang = 1 Then
Label1.Text = "Player 1 Menang"
ElseIf menang = 2 Then
Label1.Text = "Player 2 Menang"
End If
End Sub
Sub cekdraw()
'memeriksa apakah draw/stalemate
Dim temp As Boolean = True 'draw
If Button1.Text = "" Then
temp = False
End If
If Button2.Text = "" Then
temp = False
End If
If Button3.Text = "" Then
temp = False
End If
If Button4.Text = "" Then
temp = False
End If
If Button5.Text = "" Then
temp = False
End If
If Button6.Text = "" Then
temp = False
End If
If Button7.Text = "" Then
temp = False
End If
If Button8.Text = "" Then
temp = False
End If
If Button9.Text = "" Then
temp = False
End If
If temp Then
Label1.Text = "Game Over"
End If
End Sub
Private Sub Cekflag()
If flag = True Then
Label1.Text = "Player 1 Turn"
Else
Label1.Text = "Player 2 Turn"
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
flag = True
Call Cekflag()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button9.Click, Button8.Click, Button7.Click, Button6.Click, Button5.Click, Button4.Click, Button3.Click, Button2.Click
Dim a As Button = CType(sender, Button)
If a.Text = "" Then
'masih kosong
'if flag = true then
If flag Then 'artinya turn player 1
a.Text = "X"
Else 'artinya turn player 2
a.Text = "O"
End If
flag = Not flag
Call Cekflag()
Call cekdraw()
Call cekmenang()
Else
MsgBox("Kotak Sdh Ad Isinya !!!")
End If
End Sub
End Class
Screenshot :

Kali ini saya menggunakan button create on the fly
Berikut Codingannya :
Public Class Form1
'true -> giliran player 1 X
'false -> giliran player 2 O
Dim flag As Boolean = True
Function cekbutton(btna As Button, btnb As Button, btnc As Button) As Integer
Dim menang As Integer = 0
If (btna.Text = btnb.Text) And (btnb.Text = btnc.Text) Then
If btna.Text = "X" Then
menang = 1
ElseIf btna.Text = "O" Then
menang = 2
End If
End If
Return menang
End Function
Sub cekmenang()
'0 -> blm ad yang menang
'1 -> player 1 yg menang
'2 -> player 2 yang menang
Dim menang As Integer = 0
Dim temp As Integer
'Horizontal
'temp = cekbutton(Button1, Button2, Button3)
'If temp = 1 Then
' menang = 1
'ElseIf temp = 2 Then
' menang = 2
'End If
If (Button1.Text = Button2.Text) And (Button2.Text = Button3.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button4.Text = Button5.Text) And (Button5.Text = Button6.Text) Then
If Button4.Text = "X" Then
menang = 1
ElseIf Button4.Text = "O" Then
menang = 2
End If
End If
If (Button7.Text = Button8.Text) And (Button8.Text = Button9.Text) Then
If Button7.Text = "X" Then
menang = 1
ElseIf Button7.Text = "O" Then
menang = 2
End If
End If
'Vertikal
If (Button1.Text = Button4.Text) And (Button4.Text = Button7.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button2.Text = Button5.Text) And (Button5.Text = Button8.Text) Then
If Button2.Text = "X" Then
menang = 1
ElseIf Button2.Text = "O" Then
menang = 2
End If
End If
If (Button3.Text = Button6.Text) And (Button6.Text = Button9.Text) Then
If Button3.Text = "X" Then
menang = 1
ElseIf Button3.Text = "O" Then
menang = 2
End If
End If
'Diagonal
If (Button1.Text = Button5.Text) And (Button5.Text = Button9.Text) Then
If Button1.Text = "X" Then
menang = 1
ElseIf Button1.Text = "O" Then
menang = 2
End If
End If
If (Button3.Text = Button5.Text) And (Button5.Text = Button7.Text) Then
If Button3.Text = "X" Then
menang = 1
ElseIf Button3.Text = "O" Then
menang = 2
End If
End If
If menang = 1 Then
Label1.Text = "Player 1 Menang"
ElseIf menang = 2 Then
Label1.Text = "Player 2 Menang"
End If
End Sub
Sub cekdraw()
'memeriksa apakah draw/stalemate
Dim temp As Boolean = True 'draw
If Button1.Text = "" Then
temp = False
End If
If Button2.Text = "" Then
temp = False
End If
If Button3.Text = "" Then
temp = False
End If
If Button4.Text = "" Then
temp = False
End If
If Button5.Text = "" Then
temp = False
End If
If Button6.Text = "" Then
temp = False
End If
If Button7.Text = "" Then
temp = False
End If
If Button8.Text = "" Then
temp = False
End If
If Button9.Text = "" Then
temp = False
End If
If temp Then
Label1.Text = "Game Over"
End If
End Sub
Private Sub Cekflag()
If flag = True Then
Label1.Text = "Player 1 Turn"
Else
Label1.Text = "Player 2 Turn"
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
flag = True
Call Cekflag()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button9.Click, Button8.Click, Button7.Click, Button6.Click, Button5.Click, Button4.Click, Button3.Click, Button2.Click
Dim a As Button = CType(sender, Button)
If a.Text = "" Then
'masih kosong
'if flag = true then
If flag Then 'artinya turn player 1
a.Text = "X"
Else 'artinya turn player 2
a.Text = "O"
End If
flag = Not flag
Call Cekflag()
Call cekdraw()
Call cekmenang()
Else
MsgBox("Kotak Sdh Ad Isinya !!!")
End If
End Sub
End Class
Screenshot :
