Connectx Tic-Tac-Toe clone – Experiment

Connectx Tic-Tac-Toe clone - Experiment - Techronology

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.


Requirements and download

Excel 2003 or higher or compatible.

If you are ready to use this tool, then click on the download button below.

Download 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.


Experiments home Techronology home