我最后一个检查井字游戏平局的 if 语句有什么问题?我可以使用循环吗?
What is wrong with my last if statement that checks for a draw in tic tac toe? Can I use a loop?
我正在尝试检查井字游戏中是否有平局。这是一个用户 vs 用户井字游戏,它可以正确识别获胜者。我的最后一个 if 语句有问题,我试图检查是否有平局。我能否在创建循环或检查是否没有赢家的 if 语句方面获得任何指导,那么它是否平局。请帮忙。谢谢。
Public Class Form1
Dim choice As Boolean
Dim playerXwins, playerOwins As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Panel1.Enabled = False
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
ExitButton.Enabled = False
End Sub
Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click
Me.Close()
End Sub
Private Sub PlayButton_Click(sender As Object, e As EventArgs) Handles PlayButton.Click
PlayButton.Enabled = False
Panel1.Enabled = True
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
ExitButton.Enabled = True
End Sub
Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click
If choice = False Then
CType(sender, Button).Text = "X"
choice = True
Else
CType(sender, Button).Text = "O"
choice = False
End If
ChoosingWinner()
End Sub
Private Sub ChoosingWinner()
If Button1.Text = "X" And Button2.Text = "X" And Button3.Text = "X" Then
MsgBox("Player X Won this Round")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
ElseIf Button1.Text = "X" And Button4.Text = "X" And Button7.Text = "X" Then
MsgBox("Player X Won Round")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
ElseIf Button1.Text = "X" And Button5.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button2.Text = "X" And Button5.Text = "X" And Button8.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button3.Text = "X" And Button6.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button3.Text = "X" And Button5.Text = "X" And Button7.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button4.Text = "X" And Button5.Text = "X" And Button6.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button7.Text = "X" And Button8.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button1.Text = "O" And Button2.Text = "O" And Button3.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button1.Text = "O" And Button4.Text = "O" And Button7.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button1.Text = "O" And Button5.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button2.Text = "O" And Button5.Text = "O" And Button8.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button3.Text = "O" And Button6.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button3.Text = "O" And Button5.Text = "O" And Button7.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button4.Text = "O" And Button5.Text = "O" And Button6.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button7.Text = "O" And Button8.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
'checking if there is a draw?
If Button1.Text And Button2.Text And Button3.Text And Button4.Text And Button5.Text And Button6.Text And Button7.Text And Button8.Text And Button9.Text = "X" Or "O" Then
MsgBox("There is a Draw")
End If
End Sub
结束Class
这行不通。这不是 vb.net 语法的工作方式。每个陈述必须 return 真或假。
If Button1.Text And Button2.Text And Button3.Text And Button4.Text And Button5.Text And Button6.Text And Button7.Text And Button8.Text And Button9.Text = "X" Or "O" Then
MsgBox("There is a Draw")
End If
你必须做
If (Button1.Text = "O" Or Button1.Text = "X") And
(Button2.Text = "O" Or Button2.Text = "X") And
(Button3.Text = "O" Or Button3.Text = "X") And
(Button4.Text = "O" Or Button4.Text = "X") And
(Button5.Text = "O" Or Button5.Text = "X") And
(Button6.Text = "O" Or Button6.Text = "X") And
(Button7.Text = "O" Or Button7.Text = "X") And
(Button8.Text = "O" Or Button8.Text = "X") And
(Button9.Text = "O" Or Button9.Text = "X")
MsgBox("There is a Draw")
End If
我正在尝试检查井字游戏中是否有平局。这是一个用户 vs 用户井字游戏,它可以正确识别获胜者。我的最后一个 if 语句有问题,我试图检查是否有平局。我能否在创建循环或检查是否没有赢家的 if 语句方面获得任何指导,那么它是否平局。请帮忙。谢谢。
Public Class Form1
Dim choice As Boolean
Dim playerXwins, playerOwins As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Panel1.Enabled = False
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
ExitButton.Enabled = False
End Sub
Private Sub ExitButton_Click(sender As Object, e As EventArgs) Handles ExitButton.Click
Me.Close()
End Sub
Private Sub PlayButton_Click(sender As Object, e As EventArgs) Handles PlayButton.Click
PlayButton.Enabled = False
Panel1.Enabled = True
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = True
Button4.Enabled = True
Button5.Enabled = True
Button6.Enabled = True
Button7.Enabled = True
Button8.Enabled = True
Button9.Enabled = True
ExitButton.Enabled = True
End Sub
Private Sub Buttons_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click
If choice = False Then
CType(sender, Button).Text = "X"
choice = True
Else
CType(sender, Button).Text = "O"
choice = False
End If
ChoosingWinner()
End Sub
Private Sub ChoosingWinner()
If Button1.Text = "X" And Button2.Text = "X" And Button3.Text = "X" Then
MsgBox("Player X Won this Round")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
ElseIf Button1.Text = "X" And Button4.Text = "X" And Button7.Text = "X" Then
MsgBox("Player X Won Round")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
ElseIf Button1.Text = "X" And Button5.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button2.Text = "X" And Button5.Text = "X" And Button8.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button3.Text = "X" And Button6.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button3.Text = "X" And Button5.Text = "X" And Button7.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button4.Text = "X" And Button5.Text = "X" And Button6.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button7.Text = "X" And Button8.Text = "X" And Button9.Text = "X" Then
MsgBox("Player X Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerXwins = playerXwins + 1
Label2.Text = playerXwins
End If
If Button1.Text = "O" And Button2.Text = "O" And Button3.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button1.Text = "O" And Button4.Text = "O" And Button7.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button1.Text = "O" And Button5.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button2.Text = "O" And Button5.Text = "O" And Button8.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button3.Text = "O" And Button6.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button3.Text = "O" And Button5.Text = "O" And Button7.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button4.Text = "O" And Button5.Text = "O" And Button6.Text = "O" Then
MsgBox("Player O Won!")
Button1.Text = ""
Button2.Text = ""
Button3.Text = ""
Button4.Text = ""
Button5.Text = ""
Button6.Text = ""
Button7.Text = ""
Button8.Text = ""
Button9.Text = ""
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
If Button7.Text = "O" And Button8.Text = "O" And Button9.Text = "O" Then
MsgBox("Player O Won!")
Button1.Enabled = False
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = False
Button5.Enabled = False
Button6.Enabled = False
Button7.Enabled = False
Button8.Enabled = False
Button9.Enabled = False
playerOwins = playerOwins + 1
Label1.Text = playerOwins
End If
'checking if there is a draw?
If Button1.Text And Button2.Text And Button3.Text And Button4.Text And Button5.Text And Button6.Text And Button7.Text And Button8.Text And Button9.Text = "X" Or "O" Then
MsgBox("There is a Draw")
End If
End Sub
结束Class
这行不通。这不是 vb.net 语法的工作方式。每个陈述必须 return 真或假。
If Button1.Text And Button2.Text And Button3.Text And Button4.Text And Button5.Text And Button6.Text And Button7.Text And Button8.Text And Button9.Text = "X" Or "O" Then
MsgBox("There is a Draw")
End If
你必须做
If (Button1.Text = "O" Or Button1.Text = "X") And
(Button2.Text = "O" Or Button2.Text = "X") And
(Button3.Text = "O" Or Button3.Text = "X") And
(Button4.Text = "O" Or Button4.Text = "X") And
(Button5.Text = "O" Or Button5.Text = "X") And
(Button6.Text = "O" Or Button6.Text = "X") And
(Button7.Text = "O" Or Button7.Text = "X") And
(Button8.Text = "O" Or Button8.Text = "X") And
(Button9.Text = "O" Or Button9.Text = "X")
MsgBox("There is a Draw")
End If