Sub Initialiseer VELDBREEDTE = 4 MAXAANTALPOGINGEN = 10 MAXAANTALKLEUREN = 6 varHuidigePoging = 0 varGewonnen = 0 For varLoop = 1 To MAXAANTALPOGINGEN For varLoop2 = 1 To VELDBREEDTE varPogingen[varLoop][varLoop2] = 0 EndFor varScore[varLoop][1] = 0 varScore[varLoop][2] = 0 EndFor For varLoop = 1 To VELDBREEDTE varCode[varLoop] = 0 EndFor EndSub Sub ZetCode For varLoop = 1 To VELDBREEDTE varCode[varLoop] = Math.GetRandomNumber(MAXAANTALKLEUREN) EndFor EndSub Sub InvoerCode TextWindow.Write("Voer de volgende poging in: ") varPogingCompleet = TextWindow.ReadNumber() EndSub Sub EvalueerInvoer varAlleInvoerCorrect = 1 varLength = Text.GetLength(varPogingCompleet) If (varLength > VELDBREEDTE) Then TextWindow.WriteLine("Fout: code is te lang") varAlleInvoerCorrect = 0 ElseIf (varLength < VELDBREEDTE) Then TextWindow.WriteLine("Fout: code is te kort") varAlleInvoerCorrect = 0 Else For varLoop = 1 To varLength varCodeChar = Text.GetSubText(varPogingCompleet,varLoop,1) If (varCodeChar < 1 Or varCodeChar > MAXAANTALKLEUREN) Then varAlleInvoerCorrect = 0 Else varPogingen[varHuidigePoging][varLoop] = varCodeChar EndIf EndFor If (varAlleInvoerCorrect = 0) Then TextWindow.WriteLine("Fout: code bevat verkeerde karakters") EndIf EndIf EndSub Sub EvalueerPoging varTestCode = varCode varTestPoging = varPogingen[varHuidigePoging] For varLoop = 1 To VELDBREEDTE If (varTestPoging[varLoop] = varTestCode[varLoop]) Then varScore[varHuidigePoging][1] = varScore[varHuidigePoging][1] + 1 varTestPoging[varLoop] = -1 varTestCode[varLoop] = 0 EndIf EndFor For varLoop = 1 To VELDBREEDTE For varLoop2 = 1 To VELDBREEDTE If (varTestPoging[varLoop] = varTestCode[varLoop2]) Then varScore[varHuidigePoging][2] = varScore[varHuidigePoging][2] + 1 varTestPoging[varLoop] = -1 varTestCode[varLoop2] = 0 EndIf EndFor EndFor EndSub Sub ToonBord TextWindow.Clear() ' Het blokje hieronder toont de code om het programma te kunnen controleren TextWindow.Write("Code: ") For varLoop = 1 To VELDBREEDTE TextWindow.Write(varCode[varLoop]) EndFor TextWindow.WriteLine("") TextWindow.WriteLine("") ' Einde van het blok dat de code toont For varLoop = varHuidigePoging To 1 Step -1 TextWindow.Write("poging " +varLoop + ": ") For varLoop2 = 1 To VELDBREEDTE TextWindow.Write(varPogingen[varLoop][varLoop2]) EndFor TextWindow.Write(" zwart: "+varScore[varLoop][1]) TextWindow.Write(" wit: "+varScore[varLoop][2]) TextWindow.WriteLine("") TextWindow.WriteLine("") EndFor EndSub Initialiseer() ZetCode() While (varHuidigePoging < MAXAANTALPOGINGEN) And (varGewonnen = 0) ToonBord() varHuidigePoging = varHuidigePoging + 1 InvoerCode() EvalueerInvoer() While varAlleInvoerCorrect = 0 InvoerCode() EvalueerInvoer() EndWhile EvalueerPoging() If (varScore[varHuidigePoging][1] = VELDBREEDTE) Then varGewonnen = 1 EndIf EndWhile ToonBord() TextWindow.BackgroundColor = "white" TextWindow.ForegroundColor = "red" If (varGewonnen = 1) Then TextWindow.WriteLine("Je hebt gewonnen in "+varHuidigePoging+" pogingen !") Else TextWindow.WriteLine("Helaas, je hebt verloren na "+MAXAANTALPOGINGEN+" pogingen !") EndIf TextWindow.BackgroundColor = "black" TextWindow.ForegroundColor = "white" TextWindow.WriteLine("") TextWindow.WriteLine("")