これが私がVB.netで書いたコードの一部です
Private Sub L00_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles L00.Click, L01.Click, L02.Click, L03.Click, L10.Click, L11.Click, L12.Click, L13.Click, L20.Click, L21.Click, L22.Click, L23.Click, L30.Click, L31.Click, L32.Click, L33.Click
Dim ticTac As Label = CType(sender, Label)
Dim strRow As String
Dim strCol As String
'Once a move is made, do not allow user to change whether player/computer goes first, because it doesn't make sense to do so since the game has already started.
ComputerFirstStripMenuItem.Enabled = False
PlayerFirstToolStripMenuItem.Enabled = False
'Check to make sure clicked tile is a valid tile i.e and empty tile.
If (ticTac.Text = String.Empty) Then
ticTac.Text = "X"
ticTac.ForeColor = ColorDialog1.Color
ticTac.Tag = 1
'After the player has made his move it becomes the computers turn.
computerTurn(sender, e)
Else
MessageBox.Show("Please pick an empty tile to make next move", "Invalid Move")
End If
End Sub
Private Sub computerTurn(ByVal sender As System.Object, ByVal e As System.EventArgs)
Call Randomize()
row = Int(4 * Rnd())
col = Int(4 * Rnd())
'Check to make sure clicked tile is a valid tile i.e and empty tile.
If Not ticTacArray(row, col).Tag = 1 And Not ticTacArray(row, col).Tag = 4 Then
ticTacArray(row, col).Text = "O"
ticTacArray(row, col).ForeColor = ColorDialog2.Color
ticTacArray(row, col).Tag = 4
checkIfGameOver(sender, e)
Else
'Some good ole pseudo-recursion(doesn't require a base case(s)).
computerTurn(sender, e)
End If
End Sub
コンピュータが動く前に「考え」なければならないように見せようとしていることを除いて、すべてがスムーズに機能します。だから私がやろうとしたのは、上記のコードのさまざまな場所にSystem.Threading.Sleep()呼び出しを配置することです。
問題は、コンピュータをその思考のように見せるのではなく、プログラムが待機してから、XとOを同時にまとめることです。プログラムがクリックした場所にXを配置し、Oを配置する前に待機するように、誰かが私を助けてくれますか?
編集:あなたの誰かが疑問に思っている場合に備えて、私はコンピューターAIがばかげてばかげていることに気づきますが、それはただ今混乱しているだけです。後で私は深刻なAIを実装します。うまくいけば。