Sub Initialiseer MAXROWS = 3 MAXCOLUMNS = 3 varAanZet = "X" varSpelAfgelopen = 0 For varLoop = 1 To MAXROWS For varLoop2 = 1 To MAXCOLUMNS varSpelBord[varLoop][varLoop2] = "" EndFor EndFor EndSub Sub SymbolO TextWindow.BackgroundColor = "white" TextWindow.ForegroundColor = "red" TextWindow.Write("O") TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" If (varLoop2 <> MAXCOLUMNS) Then TextWindow.Write("|") EndIf EndSub Sub SymbolX TextWindow.BackgroundColor = "blue" TextWindow.ForegroundColor = "yellow" TextWindow.Write("X") TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" If (varLoop2 <> MAXCOLUMNS) Then TextWindow.Write("|") EndIf EndSub Sub Positieleeg TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" TextWindow.Write(" ") TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" If (varLoop2 <> MAXCOLUMNS) Then TextWindow.Write("|") EndIf EndSub Sub ToonBord TextWindow.Clear() For varLoop = 1 To MAXROWS For varLoop2 = 1 To MAXCOLUMNS If varSpelBord[varLoop][varLoop2] = "X" Then SymbolX() ElseIf varSpelBord[varLoop][varLoop2] = "O" Then SymbolO() Else Positieleeg() EndIf EndFor TextWindow.WriteLine("") EndFor TextWindow.WriteLine("") EndSub Sub InvoerPositie TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" TextWindow.Write(varAanZet + ": welke rij (1-"+MAXROWS+"): ") varRow = TextWindow.ReadNumber() TextWindow.Write(varAanZet + ": welke kolom (1-"+MAXCOLUMNS+"): ") varColumn = TextWindow.ReadNumber() EndSub Sub EvalueerInvoer varGezet = 0 If (varRow < 1 Or varRow > MAXROWS) Then TextWindow.WriteLine("Fout: Rij valt buiten het veld") ElseIf (varColumn < 1 Or varColumn > MAXCOLUMNS) Then TextWindow.WriteLine("Fout: kolom valt buiten het veld") ElseIf (varSpelBord[varRow][varColumn] <> "") Then TextWindow.WriteLine("Fout: cell is al in gebruik") else varSpelBord[varRow][varColumn] = varAanZet varGezet = 1 EndIf EndSub Sub EvalueerScore varGewonnen = "" EvalueerRijen() EvalueerKolommen() EvalueerDiagonaal1() EvalueerDiagonaal2() If varGewonnen <> "" Then varSpelAfgelopen = 1 ToonBord() TextWindow.WriteLine(varGewonnen +": Tic Tac Toe !") EndIf EndSub Sub EvalueerRijen For varLoop = 1 To MAXROWS varTestRij = varSpelBord[varLoop] If (varTestRij[1]) <> "" Then If (varTestRij[1] = varTestRij[2] And varTestRij[1] = varTestRij[3]) Then varGewonnen = varTestRij[1] varLoop = MAXROWS+1 EndIf EndIf EndFor EndSub Sub EvalueerKolommen For varLoop = 1 To MAXCOLUMNS If (varSpelBord[1][varLoop]) <> "" Then If (varSpelBord[1][varLoop] = varSpelBord[2][varLoop] And varSpelBord[1][varLoop] = varSpelBord[3][varLoop]) Then varGewonnen = varSpelBord[1][varLoop] varLoop = MAXCOLUMNS+1 EndIf EndIf EndFor EndSub Sub EvalueerDiagonaal1 If (varSpelBord[3][1]) <> "" Then If (varSpelBord[3][1] = varSpelBord[2][2] And varSpelBord[3][1] = varSpelBord[1][3]) Then varGewonnen = varSpelBord[3][1] EndIf EndIf EndSub Sub EvalueerDiagonaal2 If (varSpelBord[1][1]) <> "" Then If (varSpelBord[1][1] = varSpelBord[2][2] And varSpelBord[1][1] = varSpelBord[3][3]) Then varGewonnen = varSpelBord[1][1] EndIf EndIf EndSub Initialiseer() While varSpelAfgelopen = 0 ToonBord() InvoerPositie() EvalueerInvoer() While varGezet = 0 InvoerPositie() EvalueerInvoer() EndWhile EvalueerScore() If (varAanZet = "X") Then varAanZet = "O" Else varAanZet = "X" EndIf EndWhile