# Connectx Tic-Tac-Toe clone – Experiment ## Overview of Connectx

So, Connectx is another one of our wannabe Excel creations. Basically, it was supposed to function as a Tic-Tac-Toe clone. However, we did not complete it. Therefore, it is up to you to finish the dream.

To tell you the truth, when we looked at the code, it seems pretty simple. But, you know how that goes.

After saying that, we may take another shot at it, in Excel. However, we have to make it funky for you.

Excel 2003 or higher or compatible.

Size: 15 kB

Note: Instead of running this game from the zip file, save it to a location on your computer. It runs better that way.

### Code listing for Connectx

Below, take a look at the code for the program. It only took about a day to do it. Still, not completed though.

``````'connectx
'Designed and programmed by: Alex Shaw III
Option Explicit
Public gameLev As Integer
Public gameOver As Boolean
Private Sub Check_Level()
If ((Range("F16").Value <> "Easy") And (Range("F16").Value <> "Difficult")) Then
Range("F16").Value = "Easy"
End If

If (Range("F16").Value = "Easy") Then gameLev = 1 Else gameLev = 2
End Sub
Private Sub CheckXO(boxNum As String)
Select Case boxNum
Case "E9"
If ((Range("E9:G9").Text = "X") Or (Range("E9:G9").Text = "O")) Then Call Game_Over("cLine1")
If ((Range("E9:E11").Text = "X") Or (Range("E9:E11").Text = "O")) Then Call Game_Over("cLine4")
If ((Range("E9,F10,G11").Text = "X") Or (Range("E9,F10,G11").Text = "O")) Then Call Game_Over("cLine7")
Case "E10"
If ((Range("E9:E11").Text = "X") Or (Range("E9:E11").Text = "O")) Then Call Game_Over("cLine4")
If ((Range("E10:G10").Text = "X") Or (Range("E10:G10").Text = "O")) Then Call Game_Over("cLine2")
Case "E11"
If ((Range("E9:E11").Text = "X") Or (Range("E9:E11").Text = "O")) Then Call Game_Over("cLine4")
If ((Range("E11:G11").Text = "X") Or (Range("E11:G11").Text = "O")) Then Call Game_Over("cLine3")
If ((Range("E11,F10,G9").Text = "X") Or (Range("E11,F10,G9").Text = "O")) Then Call Game_Over("cLine8")
Case "F9"
If ((Range("E9:G9").Text = "X") Or (Range("E9:G9").Text = "O")) Then Call Game_Over("cLine1")
If ((Range("F9:F11").Text = "X") Or (Range("F9:F11").Text = "O")) Then Call Game_Over("cLine5")
Case "F10"
If ((Range("E9,F10,G11").Text = "X") Or (Range("E9,F10,G11").Text = "O")) Then Call Game_Over("cLine7")
If ((Range("E10:G10").Text = "X") Or (Range("E10:G10").Text = "O")) Then Call Game_Over("cLine2")
If ((Range("F9:F11").Text = "X") Or (Range("F9:F11").Text = "O")) Then Call Game_Over("cLine5")
Case "F11"
If ((Range("E11:G11").Text = "X") Or (Range("E11:G11").Text = "O")) Then Call Game_Over("cLine3")
If ((Range("F9:F11").Text = "X") Or (Range("F9:F11").Text = "O")) Then Call Game_Over("cLine5")
Case "G9"
If ((Range("E9:G9").Text = "X") Or (Range("E9:G9").Text = "O")) Then Call Game_Over("cLine1")
If ((Range("E11,F10,G9").Text = "X") Or (Range("E11,F10,G9").Text = "O")) Then Call Game_Over("cLine8")
If ((Range("G9:G11").Text = "X") Or (Range("G9:G11").Text = "O")) Then Call Game_Over("cLine6")
Case "G10"
If ((Range("E10:G10").Text = "X") Or (Range("E10:G10").Text = "O")) Then Call Game_Over("cLine2")
If ((Range("G9:G11").Text = "X") Or (Range("G9:G11").Text = "O")) Then Call Game_Over("cLine6")
Case "G11"
If ((Range("E9,F10,G11").Text = "X") Or (Range("E9,F10,G11").Text = "O")) Then Call Game_Over("cLine7")
If ((Range("E11:G11").Text = "X") Or (Range("E11:G11").Text = "O")) Then Call Game_Over("cLine3")
If ((Range("G9:G11").Text = "X") Or (Range("G9:G11").Text = "O")) Then Call Game_Over("cLine6")
End Select
End Sub
Private Sub Clear_Board()
Dim i, j As Integer

For i = 1 To 3                                                      'clear board and reassign boxes
For j = 1 To 3
Range(Chr(68 + j) & (i + 8)).Value = ""                     'clear board
Shapes("cBox" & Chr(68 + j) & (i + 8)).Visible = True       'display boxes
Next
Next
For i = 1 To 8
Shapes("cLine" & i).Visible = False                             'remove cross line
Next
End Sub
Private Sub Game_Over(lineNum As String)
Shapes(lineNum).Visible = True                                      'show cross line

gameOver = True                                                     'game over
End Sub
Public Sub PlaceX(boxNum As String)
If (Range(boxNum).Value = "") Then
Range(boxNum).Value = "X"                                       'place X
Shapes("cBox" & boxNum).Visible = False                         'remove clicked box

Call CheckXO(boxNum)                                            'check for consecutive Xs
End If
End Sub
Private Sub Initialize()
gameLev = 0                                                         'set game level
gameOver = False                                                    'game over

Range("F19").Select                                                 'position location
End Sub
Public Sub Start_Game()
Call Initialize                                                     'initialize variables
Call Clear_Board                                                    'clear board and display boxes
Call Check_Level                                                    'check game level
End Sub
Private Sub Worksheet_Activate()
Call Start_Game                                                     'start game
End Sub
``````

#### Related

Here are some additional topics associated with this experiment.

#### Support

Techronology does not offer support for any experiments.