' ' Pseudo Sudoku Solver ' Mike Simpson ' www.analogdial.com ' July 2022 ' ' ' This program will solve a Sudoku puzzle from a book or newspaper. ' Will create its own (solved) puzzle if no numbers are entered. ' ' NOTE: This program runs in QuickBASIC under DOSBOX, but ' it is too big to compile. Use QB64 to make the .exe file. ' ' DECLARE SUB BANNER () DECLARE SUB Drawboard () DECLARE SUB EnterNumbers () DECLARE SUB RunGame () DECLARE SUB ConvertCoordinates () DECLARE SUB ReloadData () DECLARE SUB Board0 () DECLARE SUB Board1 () DECLARE SUB ViewGrid1 () DECLARE SUB ViewGrid2 () DECLARE SUB ViewGrid3 () DECLARE SUB ViewGrid4 () DECLARE SUB ViewGrid5 () DECLARE SUB ViewGrid6 () DECLARE SUB ViewGrid7 () DECLARE SUB ViewGrid8 () DECLARE SUB ViewGrid9 () DECLARE SUB EndGame () DIM SHARED X$(100), Y$(100), X(100), Y(100), X2(100), Y2(100) DIM SHARED USRNBR(100), COMPUTERNBR(100), Count, Count2 DIM SHARED CELL1(10), CELL2(10), CELL3(10) DIM SHARED CELL4(10), CELL5(10), CELL6(10) DIM SHARED CELL7(10), CELL8(10), CELL9(10) DIM SHARED NumberOfRetries, STOP$ DEFINT A, Z 'Defines all variables as integers. '$DYNAMIC 'Free up lots of memory in QuickBASIC (Not needed in QB64). CLEAR , , 30000 'Assign color 7 to be white. Since SCREEN 0 doesn't support white background, we'll force it. 'QB64 only. Will remain gray in QuickBASIC _PALETTECOLOR 7, _RGB32(220, 220, 220) 'NOTE: If QuickBASIC removes the line above regarding _PALETTECOLOR, it is ' _PALETTECOLOR 7, _RGB32(220, 220, 220) ' white. 255 is BRIGHT white. 'So if you don't see it, copy this line and paste it above. (QB64 only) 'Open in resizable window. (QB64 only. REM out in QuickBASIC) $RESIZE:SMOOTH SCREEN 0 COLOR 0, 0 CLS RANDOMIZE TIMER CALL BANNER CALL RunGame DEFSNG A, Z SUB BANNER COLOR 15, 0 LOCATE 2, 7: PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ " LOCATE 20, 7: PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ " COLOR 14, 1 LOCATE 3, 8: PRINT " " LOCATE 4, 8: PRINT " ÜÜÜÜÜ ÜÜ ÜÜ ÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 5, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 6, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 7, 8: PRINT " ÜÜÜÜÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜÜÜÜ ÜÜ ÜÜ " LOCATE 8, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 9, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 10, 8: PRINT " ÜÜÜÜÜÜ ÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜ ÜÜ ÜÜ ÜÜÜÜÜÜÜ " LOCATE 11, 8: PRINT " " LOCATE 12, 8: PRINT " ÜÜÜÜÜ ÜÜÜÜÜÜÜ ÜÜ ÜÜ ÜÜ ÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜ " LOCATE 13, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 14, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 15, 8: PRINT " ÜÜÜÜÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜ " LOCATE 16, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 17, 8: PRINT " ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ ÜÜ " LOCATE 18, 8: PRINT " ÜÜÜÜÜÜ ÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜ ÜÜÜ ÜÜÜÜÜÜÜÜ ÜÜ ÜÜ " LOCATE 19, 8: PRINT " " COLOR 14, 0 'LOCATE 8, 32: PRINT "SUDOKU SOLVER" LOCATE 20, 35: PRINT " VER 8.5 " COLOR 10, 0 LOCATE 22, 22: PRINT "Use the mouse to resize this window" COLOR 14, 0 LOCATE 23, 33: PRINT "Press a key" inkeys$ = PressAKey$: DO LOOP UNTIL INKEY$ <> "" CLS END SUB SUB Board0 'This sub looks at the cells and makes a list of possible numbers that can be used in each. 'If there is only one number on the list, it populates the cell with the number. Count2 = 0 ' The array that any found digits will be stored in. DetectedNumbers = 0 ' Number of digits found. FOR Board0Loop = 1 TO 10 ' Loop this ten times so it can find more numbers ' but if no numbers are found on any pass then exit. COLOR 15, 0: LOCATE 18, 60: PRINT "Search ="; Board0Loop COLOR 1, 7 'FIRST 3X23 GRID 'Check the grid for numbers already there. CALL ViewGrid1 'First CELL LIST$ = "" 'start with a clean list 'If the CELL is empty ... IF CELL1(1) = 32 THEN FOR Number = 1 TO 9 'If list has more than one number on it, stop checking. IF LEN(LIST$) > 2 THEN EXIT FOR 'Check for duplicates in grid. FOR Check = 2 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr1 NEXT Check 'Check for duplicates in top row FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr1 NEXT Look 'Check for duplicates in the first column FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr1 NEXT Look 'Make a list of numbers that can go into the cell LIST$ = LIST$ + STR$(Number) Numbr1: NEXT Number 'If there is only one number on the list, put it in the cell 'Otherwise, ignore the list. IF LEN(LIST$) = 2 THEN CELL1 = VAL(LIST$) 'Print number. It has a space in front of it, so print it one space to the left LOCATE 5, 11: PRINT CELL1 'Remember the number and location. Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL1 END IF END IF '--------------------------- 'Second CELL LIST$ = "" IF CELL1(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr2 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr2 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr2 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr2: NEXT Number IF LEN(LIST$) = 2 THEN CELL2 = VAL(LIST$) LOCATE 5, 15: PRINT CELL2 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL2 END IF END IF '--------------------------- 'Third CELL LIST$ = "" IF CELL1(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr3 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr3 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr3 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr3: NEXT Number IF LEN(LIST$) = 2 THEN CELL3 = VAL(LIST$) LOCATE 5, 19: PRINT CELL3 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL3 END IF END IF '--------------------------- 'Fourth CELL LIST$ = "" IF CELL1(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr4 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr4 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr4 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr4: NEXT Number IF LEN(LIST$) = 2 THEN CELL4 = VAL(LIST$) LOCATE 7, 11: PRINT CELL4 'Remember the number and location. Subtract 1 from X2 coordinate. Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL4 END IF END IF '--------------------------- 'Fifth CELL LIST$ = "" IF CELL1(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr5 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr5 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr5 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr5: NEXT Number IF LEN(LIST$) = 2 THEN CELL5 = VAL(LIST$) LOCATE 7, 15: PRINT CELL5 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL5 END IF END IF '--------------------------- 'sixth CELL LIST$ = "" IF CELL1(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr6 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr6 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr6 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr6: NEXT Number IF LEN(LIST$) = 2 THEN CELL6 = VAL(LIST$) LOCATE 7, 19: PRINT CELL6 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL6 END IF END IF '--------------------------- 'seventh CELL LIST$ = "" IF CELL1(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr7 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr7 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr7 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr7: NEXT Number IF LEN(LIST$) = 2 THEN CELL7 = VAL(LIST$) LOCATE 9, 11: PRINT CELL7 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL7 END IF END IF '--------------------------- 'eighth CELL LIST$ = "" IF CELL1(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL1(Check) THEN GOTO Numbr8 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr8 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr8 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr8: NEXT Number IF LEN(LIST$) = 2 THEN CELL8 = VAL(LIST$) LOCATE 9, 15: PRINT CELL8$ Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL8 END IF END IF '--------------------------- 'ninth CELL LIST$ = "" IF CELL1(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL1(Check) THEN GOTO Numbr9 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr9 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr9 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr9: NEXT Number IF LEN(LIST$) = 2 THEN CELL9 = VAL(LIST$) LOCATE 9, 19: PRINT CELL9 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL9 END IF END IF '--------------------------- 'SECOND 3X23 GRID CALL ViewGrid2 'First CELL LIST$ = "" IF CELL2(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr10 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr10 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr10 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr10: NEXT Number IF LEN(LIST$) = 2 THEN CELL10 = VAL(LIST$) LOCATE 5, 23: PRINT CELL10 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL10 END IF END IF '--------------------------- 'Second CELL LIST$ = "" IF CELL2(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr11 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr11 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr11 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr11: NEXT Number IF LEN(LIST$) = 2 THEN CELL11 = VAL(LIST$) LOCATE 5, 27: PRINT CELL11 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL11 END IF END IF '--------------------------- 'Third CELL LIST$ = "" IF CELL2(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr12 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr12 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr12 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr12: NEXT Number IF LEN(LIST$) = 2 THEN CELL12 = VAL(LIST$) LOCATE 5, 31: PRINT CELL12 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL12 END IF END IF '--------------------------- 'Fourth CELL LIST$ = "" IF CELL2(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr13 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr13 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr13 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr13: NEXT Number IF LEN(LIST$) = 2 THEN CELL13 = VAL(LIST$) LOCATE 7, 23: PRINT CELL13 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL13 END IF END IF '--------------------------- 'Fifth CELL LIST$ = "" IF CELL2(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr14 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr14 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr14 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr14: NEXT Number IF LEN(LIST$) = 2 THEN CELL14 = VAL(LIST$) LOCATE 7, 27: PRINT CELL14 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL14 END IF END IF '--------------------------- 'sixth CELL LIST$ = "" IF CELL2(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr15 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr15 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr15 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr15: NEXT Number IF LEN(LIST$) = 2 THEN CELL15 = VAL(LIST$) LOCATE 7, 31: PRINT CELL15 'Remember the number and location. Subtract 1 from X2 coordinate. Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL15 END IF END IF '--------------------------- 'seventh CELL LIST$ = "" IF CELL2(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr16 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr16 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr16 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr16: NEXT Number IF LEN(LIST$) = 2 THEN CELL16 = VAL(LIST$) LOCATE 9, 23: PRINT CELL16 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL16 END IF END IF '--------------------------- 'eighth CELL LIST$ = "" IF CELL2(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL2(Check) THEN GOTO Numbr17 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr17 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr17 NEXT Look LIST$ = LIST$ + STR$(CELL2(8)) Numbr17: NEXT Number IF LEN(LIST$) = 2 THEN CELL17 = VAL(LIST$) LOCATE 9, 27: PRINT CELL17 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL17 END IF END IF '--------------------------- 'ninth CELL LIST$ = "" IF CELL2(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL2(Check) THEN GOTO Numbr18 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr18 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr18 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr18: NEXT Number IF LEN(LIST$) = 2 THEN CELL18 = VAL(LIST$) LOCATE 9, 31: PRINT CELL18 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL18 END IF END IF '--------------------------- 'Third 3X23 grid 'First CELL CALL ViewGrid3 LIST$ = "" IF CELL3(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr19 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr19 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr19 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr19: NEXT Number IF LEN(LIST$) = 2 THEN CELL19 = VAL(LIST$) LOCATE 5, 35: PRINT CELL19 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL19 END IF END IF '--------------------------- 'Second CELL LIST$ = "" IF CELL3(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr20 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr20 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr20 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr20: NEXT Number IF LEN(LIST$) = 2 THEN CELL20 = VAL(LIST$) LOCATE 5, 39: PRINT CELL20 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL20 END IF END IF '--------------------------- 'Third CELL LIST$ = "" IF CELL3(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr21 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(5, Look) - 48 THEN GOTO Numbr21 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr21 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr21: NEXT Number IF LEN(LIST$) = 2 THEN CELL21 = VAL(LIST$) LOCATE 5, 43: PRINT CELL21 Count2 = Count2 + 1: Y2(Count2) = 5: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL21 END IF END IF '--------------------------- 'Fourth CELL LIST$ = "" IF CELL3(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr22 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr22 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr22 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr22: NEXT Number IF LEN(LIST$) = 2 THEN CELL22 = VAL(LIST$) LOCATE 7, 35: PRINT CELL22 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL22 END IF END IF '--------------------------- 'Fifth CELL LIST$ = "" IF CELL3(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr23 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr23 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr23 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr23: NEXT Number IF LEN(LIST$) = 2 THEN CELL23 = VAL(LIST$) LOCATE 7, 39: PRINT CELL23 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL23 END IF END IF '--------------------------- 'sixth CELL LIST$ = "" IF CELL3(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr24 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(7, Look) - 48 THEN GOTO Numbr24 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr24 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr24: NEXT Number IF LEN(LIST$) = 2 THEN CELL24 = VAL(LIST$) LOCATE 7, 43: PRINT CELL24 Count2 = Count2 + 1: Y2(Count2) = 7: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL24 END IF END IF '--------------------------- 'seventh CELL LIST$ = "" IF CELL3(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr25 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr25 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr25 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr25: NEXT Number IF LEN(LIST$) = 2 THEN CELL25 = VAL(LIST$) LOCATE 9, 35: PRINT CELL25 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL25 END IF END IF '--------------------------- 'eighth CELL LIST$ = "" IF CELL3(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL3(Check) THEN GOTO Numbr26 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr26 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr26 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr26: NEXT Number IF LEN(LIST$) = 2 THEN CELL26 = VAL(LIST$) LOCATE 9, 39: PRINT CELL26 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL26 END IF END IF '--------------------------- 'ninth CELL LIST$ = "" IF CELL3(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL3(Check) THEN GOTO Numbr27 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(9, Look) - 48 THEN GOTO Numbr27 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr27 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr27: NEXT Number IF LEN(LIST$) = 2 THEN CELL27 = VAL(LIST$) LOCATE 9, 43: PRINT CELL27 Count2 = Count2 + 1: Y2(Count2) = 9: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL27 END IF END IF '--------------------------- 'Fourth 3X23 grid 'First CELL (Number 28) CALL ViewGrid4 LIST$ = "" IF CELL4(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr28 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr28 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr28 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr28: NEXT Number IF LEN(LIST$) = 2 THEN CELL28 = VAL(LIST$) LOCATE 11, 11: PRINT CELL28 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL28 END IF END IF '--------------------------- 'Second CELL (Number 29) LIST$ = "" IF CELL4(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr29 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr29 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr29 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr29: NEXT Number IF LEN(LIST$) = 2 THEN CELL29 = VAL(LIST$) LOCATE 11, 15: PRINT CELL29 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL29 END IF END IF '--------------------------- 'Third CELL (Number 30) LIST$ = "" IF CELL4(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr30 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr30 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr30 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr30: NEXT Number IF LEN(LIST$) = 2 THEN CELL30 = VAL(LIST$) LOCATE 11, 19: PRINT CELL30 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL30 END IF END IF '--------------------------- 'Fourth CELL (Number 31) LIST$ = "" IF CELL4(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr31 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr31 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr31 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr31: NEXT Number IF LEN(LIST$) = 2 THEN CELL31 = VAL(LIST$) LOCATE 13, 11: PRINT CELL31 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL31 END IF END IF '--------------------------- 'Fifth CELL (Number 32) LIST$ = "" IF CELL4(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr32 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr32 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr32 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr32: NEXT Number IF LEN(LIST$) = 2 THEN CELL32 = VAL(LIST$) LOCATE 13, 15: PRINT CELL32 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL32 END IF END IF '--------------------------- 'sixth CELL (Number 33) LIST$ = "" IF CELL4(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr33 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr33 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr33 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr33: NEXT Number IF LEN(LIST$) = 2 THEN CELL33 = VAL(LIST$) LOCATE 13, 19: PRINT CELL33 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL33 END IF END IF '--------------------------- 'seventh CELL (Number 34) LIST$ = "" IF CELL4(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr34 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr34 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr34 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr34: NEXT Number IF LEN(LIST$) = 2 THEN CELL34 = VAL(LIST$) LOCATE 15, 11: PRINT CELL34 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL34 END IF END IF '--------------------------- 'eighth CELL (Number 35) LIST$ = "" IF CELL4(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL4(Check) THEN GOTO Numbr35 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr35 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr35 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr35: NEXT Number IF LEN(LIST$) = 2 THEN CELL35 = VAL(LIST$) LOCATE 15, 15: PRINT CELL35 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL35 END IF END IF '--------------------------- 'ninth CELL (Number 36) LIST$ = "" IF CELL4(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL4(Check) THEN GOTO Numbr36 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr36 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr36 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr36: NEXT Number IF LEN(LIST$) = 2 THEN CELL36 = VAL(LIST$) LOCATE 15, 19: PRINT CELL36 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL36 END IF END IF '--------------------------- 'Fifth 3X3 grid CALL ViewGrid5 'First CELL (Number 37) LIST$ = "" IF CELL5(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr37 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr37 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr37 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr37: NEXT Number IF LEN(LIST$) = 2 THEN CELL37 = VAL(LIST$) LOCATE 11, 23: PRINT CELL37 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL37 END IF END IF '--------------------------- 'Second CELL (Number 38) LIST$ = "" IF CELL5(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr38 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr38 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr38 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr38: NEXT Number IF LEN(LIST$) = 2 THEN CELL38 = VAL(LIST$) LOCATE 11, 27: PRINT CELL38 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL38 END IF END IF '--------------------------- 'Third CELL (Number 39) LIST$ = "" IF CELL5(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr39 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr39 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr39 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr39: NEXT Number IF LEN(LIST$) = 2 THEN CELL39 = VAL(LIST$) LOCATE 11, 31: PRINT CELL39 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL39 END IF END IF '--------------------------- 'Fourth CELL (Number 40) LIST$ = "" IF CELL5(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr40 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr40 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr40 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr40: NEXT Number IF LEN(LIST$) = 2 THEN CELL40 = VAL(LIST$) LOCATE 13, 23: PRINT CELL40 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL40 END IF END IF '--------------------------- 'Fifth CELL (Number 41) LIST$ = "" IF CELL5(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr41 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr41 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr41 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr41: NEXT Number IF LEN(LIST$) = 2 THEN CELL41 = VAL(LIST$) LOCATE 13, 27: PRINT CELL41 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL41 END IF END IF '--------------------------- 'sixth CELL (Number 42) LIST$ = "" IF CELL5(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr42 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr42 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr42 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr42: NEXT Number IF LEN(LIST$) = 2 THEN CELL42 = VAL(LIST$) LOCATE 13, 31: PRINT CELL42 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL42 END IF END IF '--------------------------- 'seventh CELL (Number 43) LIST$ = "" IF CELL5(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr43 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr43 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr43 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr43: NEXT Number IF LEN(LIST$) = 2 THEN CELL43 = VAL(LIST$) LOCATE 15, 23: PRINT CELL43 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL43 END IF END IF '--------------------------- 'eighth CELL (Number 44) LIST$ = "" IF CELL5(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL5(Check) THEN GOTO Numbr44 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr44 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr44 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr44: NEXT Number IF LEN(LIST$) = 2 THEN CELL44 = VAL(LIST$) LOCATE 15, 27: PRINT CELL44 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL44 END IF END IF '--------------------------- 'ninth CELL (Number 45) LIST$ = "" IF CELL5(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL5(Check) THEN GOTO Numbr45 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr45 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr45 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr45: NEXT Number IF LEN(LIST$) = 2 THEN CELL45 = VAL(LIST$) LOCATE 15, 31: PRINT CELL45 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL45 END IF END IF '--------------------------- 'sixth 3X23 grid CALL ViewGrid6 'First CELL (Number 46) LIST$ = "" IF CELL6(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr46 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr46 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr46 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr46: NEXT Number IF LEN(LIST$) = 2 THEN CELL46 = VAL(LIST$) LOCATE 11, 35: PRINT CELL46 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL46 END IF END IF '--------------------------- 'Second CELL (Number 47) LIST$ = "" IF CELL6(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr47 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr47 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr47 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr47: NEXT Number IF LEN(LIST$) = 2 THEN CELL47 = VAL(LIST$) LOCATE 11, 39: PRINT CELL47 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL47 END IF END IF '--------------------------- 'Third CELL (Number 48) LIST$ = "" IF CELL6(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr48 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(11, Look) - 48 THEN GOTO Numbr48 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr48 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr48: NEXT Number IF LEN(LIST$) = 2 THEN CELL48 = VAL(LIST$) LOCATE 11, 43: PRINT CELL48 Count2 = Count2 + 1: Y2(Count2) = 11: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL48 END IF END IF '--------------------------- 'Fourth CELL (Number 49) LIST$ = "" IF CELL6(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr49 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr49 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr49 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr49: NEXT Number IF LEN(LIST$) = 2 THEN CELL49 = VAL(LIST$) LOCATE 13, 35: PRINT CELL49 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL49 END IF END IF '--------------------------- 'Fifth CELL (Number 50) LIST$ = "" IF CELL6(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr50 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr50 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr50 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr50: NEXT Number IF LEN(LIST$) = 2 THEN CELL50 = VAL(LIST$) LOCATE 13, 39: PRINT CELL50 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL50 END IF END IF '--------------------------- 'sixth CELL (Number 51) LIST$ = "" IF CELL6(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr51 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(13, Look) - 48 THEN GOTO Numbr51 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr51 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr51: NEXT Number IF LEN(LIST$) = 2 THEN CELL51 = VAL(LIST$) LOCATE 13, 43: PRINT CELL51 Count2 = Count2 + 1: Y2(Count2) = 13: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL51 END IF END IF '--------------------------- 'seventh CELL (Number 52) LIST$ = "" IF CELL6(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr52 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr52 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr52 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr52: NEXT Number IF LEN(LIST$) = 2 THEN CELL52 = VAL(LIST$) LOCATE 15, 35: PRINT CELL52 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL52 END IF END IF '--------------------------- 'eighth CELL (Number 53) LIST$ = "" IF CELL6(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL6(Check) THEN GOTO Numbr53 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr53 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr53 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr53: NEXT Number IF LEN(LIST$) = 2 THEN CELL53 = VAL(LIST$) LOCATE 15, 39: PRINT CELL53 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL53 END IF END IF '--------------------------- 'ninth CELL (Number 54) LIST$ = "" IF CELL6(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL6(Check) THEN GOTO Numbr54 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(15, Look) - 48 THEN GOTO Numbr54 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr54 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr54: NEXT Number IF LEN(LIST$) = 2 THEN CELL54 = VAL(LIST$) LOCATE 15, 43: PRINT CELL54 Count2 = Count2 + 1: Y2(Count2) = 15: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL54 END IF END IF '--------------------------- 'Seventh 3X23 grid CALL ViewGrid7 'First CELL (Number 55) LIST$ = "" IF CELL7(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr55 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr55 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr55 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr55: NEXT Number IF LEN(LIST$) = 2 THEN CELL55 = VAL(LIST$) LOCATE 17, 11: PRINT CELL55 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL55 END IF END IF '--------------------------- 'Second CELL (Number 56) LIST$ = "" IF CELL7(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr56 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr56 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr56 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr56: NEXT Number IF LEN(LIST$) = 2 THEN CELL56 = VAL(LIST$) LOCATE 17, 15: PRINT CELL56 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL56 END IF END IF '--------------------------- 'Third CELL (Number 57) LIST$ = "" IF CELL7(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr57 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr57 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr57 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr57: NEXT Number IF LEN(LIST$) = 2 THEN CELL57 = VAL(LIST$) LOCATE 17, 19: PRINT CELL57 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL57 END IF END IF '--------------------------- 'Fourth CELL (Number 58) LIST$ = "" IF CELL7(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr58 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr58 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr58 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr58: NEXT Number IF LEN(LIST$) = 2 THEN CELL58 = VAL(LIST$) LOCATE 19, 11: PRINT CELL58 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL58 END IF END IF '--------------------------- 'Fifth CELL (Number 59) LIST$ = "" IF CELL7(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr59 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr59 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr59 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr59: NEXT Number IF LEN(LIST$) = 2 THEN CELL59 = VAL(LIST$) LOCATE 19, 15: PRINT CELL59 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL59 END IF END IF '--------------------------- 'sixth CELL (Number 60) LIST$ = "" IF CELL7(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr60 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr60 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr60 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr60: NEXT Number IF LEN(LIST$) = 2 THEN CELL60 = VAL(LIST$) LOCATE 19, 19: PRINT CELL60 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL60 END IF END IF '--------------------------- 'seventh CELL (Number 61) LIST$ = "" IF CELL7(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr61 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr61 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 12) - 48 THEN GOTO Numbr61 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr61: NEXT Number IF LEN(LIST$) = 2 THEN CELL61 = VAL(LIST$) LOCATE 21, 11: PRINT CELL61 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 11: COMPUTERNBR(Count2) = CELL61 END IF END IF '--------------------------- 'eighth CELL (Number 62) LIST$ = "" IF CELL7(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL7(Check) THEN GOTO Numbr62 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr62 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 16) - 48 THEN GOTO Numbr62 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr62: NEXT Number IF LEN(LIST$) = 2 THEN CELL62 = VAL(LIST$) LOCATE 21, 15: PRINT CELL62 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 15: COMPUTERNBR(Count2) = CELL62 END IF END IF '--------------------------- 'ninth CELL (Number 63) LIST$ = "" IF CELL7(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL7(Check) THEN GOTO Numbr63 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr63 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 20) - 48 THEN GOTO Numbr63 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr63: NEXT Number IF LEN(LIST$) = 2 THEN CELL63 = VAL(LIST$) LOCATE 21, 19: PRINT CELL63 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 19: COMPUTERNBR(Count2) = CELL63 END IF END IF '--------------------------- 'Eigth 3X23 grid CALL ViewGrid8 'First CELL (Number 64) LIST$ = "" IF CELL8(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr64 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr64 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr64 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr64: NEXT Number IF LEN(LIST$) = 2 THEN CELL64 = VAL(LIST$) LOCATE 17, 23: PRINT CELL64 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL64 END IF END IF '--------------------------- 'Second CELL (Number 65) LIST$ = "" IF CELL8(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr65 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr65 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr65 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr65: NEXT Number IF LEN(LIST$) = 2 THEN CELL65 = VAL(LIST$) LOCATE 17, 27: PRINT CELL65 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL65 END IF END IF '--------------------------- 'Third CELL (Number 66) LIST$ = "" IF CELL8(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr66 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr66 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr66 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr66: NEXT Number IF LEN(LIST$) = 2 THEN CELL66 = VAL(LIST$) LOCATE 17, 31: PRINT CELL66 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL66 END IF END IF '--------------------------- 'Fourth CELL (Number 67) LIST$ = "" IF CELL8(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr67 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr67 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr67 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr67: NEXT Number IF LEN(LIST$) = 2 THEN CELL67 = VAL(LIST$) LOCATE 19, 23: PRINT CELL67 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL67 END IF END IF '--------------------------- 'Fifth CELL (Number 68) LIST$ = "" IF CELL8(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr68 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr68 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr68 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr68: NEXT Number IF LEN(LIST$) = 2 THEN CELL68 = VAL(LIST$) LOCATE 19, 27: PRINT CELL68 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL68 END IF END IF '--------------------------- 'sixth CELL (Number 69) LIST$ = "" IF CELL8(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr69 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr69 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr69 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr69: NEXT Number IF LEN(LIST$) = 2 THEN CELL69 = VAL(LIST$) LOCATE 19, 31: PRINT CELL69 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL69 END IF END IF '--------------------------- 'seventh CELL (Number 70) LIST$ = "" IF CELL8(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr70 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr70 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 24) - 48 THEN GOTO Numbr70 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr70: NEXT Number IF LEN(LIST$) = 2 THEN CELL70 = VAL(LIST$) LOCATE 21, 23: PRINT CELL70 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 23: COMPUTERNBR(Count2) = CELL70 END IF END IF '--------------------------- 'eighth CELL (Number 71) LIST$ = "" IF CELL8(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL8(Check) THEN GOTO Numbr71 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr71 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 28) - 48 THEN GOTO Numbr71 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr71: NEXT Number IF LEN(LIST$) = 2 THEN CELL71 = VAL(LIST$) LOCATE 21, 27: PRINT CELL71 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 27: COMPUTERNBR(Count2) = CELL71 END IF END IF '--------------------------- 'ninth CELL (Number 72) LIST$ = "" IF CELL8(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL8(Check) THEN GOTO Numbr72 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr72 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 32) - 48 THEN GOTO Numbr72 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr72: NEXT Number IF LEN(LIST$) = 2 THEN CELL72 = VAL(LIST$) LOCATE 21, 31: PRINT CELL72 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 31: COMPUTERNBR(Count2) = CELL72 END IF END IF '--------------------------- 'Ninth 3X23 grid CALL ViewGrid9 'First CELL (Number 73) LIST$ = "" IF CELL9(1) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 2 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr73 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr73 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr73 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr73: NEXT Number IF LEN(LIST$) = 2 THEN CELL73 = VAL(LIST$) LOCATE 17, 35: PRINT CELL73 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL73 END IF END IF '--------------------------- 'Second CELL (Number 74) LIST$ = "" IF CELL9(2) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr74 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr74 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr74 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr74: NEXT Number IF LEN(LIST$) = 2 THEN CELL74 = VAL(LIST$) LOCATE 17, 39: PRINT CELL74 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL74 END IF END IF '--------------------------- 'Third CELL (Number 75) LIST$ = "" IF CELL9(3) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr75 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(17, Look) - 48 THEN GOTO Numbr75 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr75 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr75: NEXT Number IF LEN(LIST$) = 2 THEN CELL75 = VAL(LIST$) LOCATE 17, 43: PRINT CELL75 Count2 = Count2 + 1: Y2(Count2) = 17: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL75 END IF END IF '--------------------------- 'Fourth CELL (Number 76) LIST$ = "" IF CELL9(4) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr76 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr76 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr76 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr76: NEXT Number IF LEN(LIST$) = 2 THEN CELL76 = VAL(LIST$) LOCATE 19, 35: PRINT CELL76 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL76 END IF END IF '--------------------------- 'Fifth CELL (Number 77) LIST$ = "" IF CELL9(5) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr77 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr77 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr77 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr77: NEXT Number IF LEN(LIST$) = 2 THEN CELL77 = VAL(LIST$) LOCATE 19, 39: PRINT CELL77 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL77 END IF END IF '--------------------------- 'sixth CELL (Number 78) LIST$ = "" IF CELL9(6) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr78 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(19, Look) - 48 THEN GOTO Numbr78 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr78 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr78: NEXT Number IF LEN(LIST$) = 2 THEN CELL78 = VAL(LIST$) LOCATE 19, 43: PRINT CELL78 Count2 = Count2 + 1: Y2(Count2) = 19: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL78 END IF END IF '--------------------------- 'seventh CELL (Number 79) LIST$ = "" IF CELL9(7) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr79 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr79 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 36) - 48 THEN GOTO Numbr79 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr79: NEXT Number IF LEN(LIST$) = 2 THEN CELL79 = VAL(LIST$) LOCATE 21, 35: PRINT CELL79 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 35: COMPUTERNBR(Count2) = CELL79 END IF END IF '--------------------------- 'eighth CELL (Number 80) LIST$ = "" IF CELL9(8) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 9 IF Number = CELL9(Check) THEN GOTO Numbr80 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr80 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 40) - 48 THEN GOTO Numbr80 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr80: NEXT Number IF LEN(LIST$) = 2 THEN CELL80 = VAL(LIST$) LOCATE 21, 39: PRINT CELL80 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 39: COMPUTERNBR(Count2) = CELL80 END IF END IF '--------------------------- 'ninth CELL (Number 81) LIST$ = "" IF CELL9(9) = 32 THEN FOR Number = 1 TO 9 IF LEN(LIST$) > 2 THEN EXIT FOR FOR Check = 1 TO 8 IF Number = CELL9(Check) THEN GOTO Numbr81 NEXT Check FOR Look = 12 TO 44 STEP 4 IF Number = SCREEN(21, Look) - 48 THEN GOTO Numbr81 NEXT Look FOR Look = 5 TO 21 STEP 2 IF Number = SCREEN(Look, 44) - 48 THEN GOTO Numbr81 NEXT Look LIST$ = LIST$ + STR$(Number) Numbr81: NEXT Number IF LEN(LIST$) = 2 THEN CELL81 = VAL(LIST$) LOCATE 21, 43: PRINT CELL81 Count2 = Count2 + 1: Y2(Count2) = 21: X2(Count2) = 43: COMPUTERNBR(Count2) = CELL81 END IF END IF '--------------------------- 'The following will cause the loop to eXit if no cell numbers are found. 'If "Count2" on the current pass is the same as "DetectedNumbers" on 'the last pass, (or if it is equal to zero) then no numbers were found. IF DetectedNumbers = Count2 THEN EXIT FOR DetectedNumbers = Count2 'Flag increments if cell number is found. NEXT Board0Loop COLOR 15, 0: LOCATE 18, 60: PRINT " " ' Erase search msg. END SUB SUB Board1 DIM PickedNum(40) Restart = 0 StartGrid1: Restart = Restart + 1 NumberOfRetries = NumberOfRetries + 1 'This clears the board during program eXecution COLOR 7, 7 FOR Y = 5 TO 21 STEP 2 FOR X = 12 TO 44 STEP 4 LOCATE Y, X: PRINT " " NEXT X NEXT Y COLOR 7, 0: LOCATE 2, 50: PRINT "Number Of Retries="; NumberOfRetries LOCATE 18, 50: PRINT "Press to stop puzzle" 'LOCATE 19, 50: PRINT " or edit numbers." 'Put back the user input CALL ReloadData STOP$ = INKEY$ IF STOP$ = CHR$(27) THEN CALL RunGame 'User has pressed 'Check the grid for user input. Hold the screen code in memory. CALL ViewGrid1 'First CELL Attempt = 0 'If the CELL is empty, put a number in it. CHR$32 is a space, so if 'the cell contains "32" it is actually empty. IF CELL1(1) = 32 THEN Number1: CELL1(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 'Out of numbers. We tried it 20 times. 'Keep track of numbers already used PickedNum(Attempt) = CELL1(1) FOR CHK = 1 TO Attempt IF CELL1(1) = PickedNum(CHK - 1) THEN GOTO Number1 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL1(1) = CELL1(Check) THEN GOTO Number1 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL1(1) = SCREEN(5, Look) - 48 THEN GOTO Number1 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL1(1) = SCREEN(Look, 12) - 48 THEN GOTO Number1 NEXT Look LOCATE 5, 11: PRINT CELL1(1) END IF '--------------------------- 'Second CELL Attempt = 0 IF CELL1(2) = 32 THEN Number2: CELL1(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(2) FOR CHK = 1 TO Attempt IF CELL1(2) = PickedNum(CHK - 1) THEN GOTO Number2 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL1(2) = CELL1(Check) THEN GOTO Number2 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL1(2) = SCREEN(5, Look) - 48 THEN GOTO Number2 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL1(2) = SCREEN(Look, 16) - 48 THEN GOTO Number2 NEXT Look LOCATE 5, 15: PRINT CELL1(2) END IF '--------------------------- 'Third CELL Attempt = 0 IF CELL1(3) = 32 THEN Number3: CELL1(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(3) FOR CHK = 1 TO Attempt IF CELL1(3) = PickedNum(CHK - 1) THEN GOTO Number3 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL1(3) = CELL1(Check) THEN GOTO Number3 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL1(3) = SCREEN(5, Look) - 48 THEN GOTO Number3 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL1(3) = SCREEN(Look, 20) - 48 THEN GOTO Number3 NEXT Look LOCATE 5, 19: PRINT CELL1(3) END IF '--------------------------- 'Fourth CELL Attempt = 0 IF CELL1(4) = 32 THEN Number4: CELL1(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(4) FOR CHK = 1 TO Attempt IF CELL1(4) = PickedNum(CHK - 1) THEN GOTO Number4 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL1(4) = CELL1(Check) THEN GOTO Number4 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL1(4) = SCREEN(7, Look) - 48 THEN GOTO Number4 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL1(4) = SCREEN(Look, 12) - 48 THEN GOTO Number4 NEXT Look LOCATE 7, 11: PRINT CELL1(4) END IF '--------------------------- 'Fifth CELL Attempt = 0 IF CELL1(5) = 32 THEN Number5: CELL1(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(5) FOR CHK = 1 TO Attempt IF CELL1(5) = PickedNum(CHK - 1) THEN GOTO Number5 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL1(5) = CELL1(Check) THEN GOTO Number5 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL1(5) = SCREEN(7, Look) - 48 THEN GOTO Number5 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL1(5) = SCREEN(Look, 16) - 48 THEN GOTO Number5 NEXT Look LOCATE 7, 15: PRINT CELL1(5) END IF '--------------------------- 'sixth CELL Attempt = 0 IF CELL1(6) = 32 THEN Number6: CELL1(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(6) FOR CHK = 1 TO Attempt IF CELL1(6) = PickedNum(CHK - 1) THEN GOTO Number6 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL1(6) = CELL1(Check) THEN GOTO Number6 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL1(6) = SCREEN(7, Look) - 48 THEN GOTO Number6 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL1(6) = SCREEN(Look, 20) - 48 THEN GOTO Number6 NEXT Look LOCATE 7, 19: PRINT CELL1(6) END IF '--------------------------- 'seventh CELL Attempt = 0 IF CELL1(7) = 32 THEN Number7: CELL1(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(7) FOR CHK = 1 TO Attempt IF CELL1(7) = PickedNum(CHK - 1) THEN GOTO Number7 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL1(7) = CELL1(Check) THEN GOTO Number7 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL1(7) = SCREEN(9, Look) - 48 THEN GOTO Number7 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL1(7) = SCREEN(Look, 12) - 48 THEN GOTO Number7 NEXT Look LOCATE 9, 11: PRINT CELL1(7) END IF '--------------------------- 'eighth CELL Attempt = 0 IF CELL1(8) = 32 THEN Number8: CELL1(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL1(8) FOR CHK = 1 TO Attempt IF CELL1(8) = PickedNum(CHK - 1) THEN GOTO Number8 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL1(8) = CELL1(Check) THEN GOTO Number8 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL1(8) = SCREEN(9, Look) - 48 THEN GOTO Number8 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL1(8) = SCREEN(Look, 16) - 48 THEN GOTO Number8 NEXT Look LOCATE 9, 15: PRINT CELL1(8) END IF '--------------------------- 'ninth CELL IF CELL1(9) = 32 THEN Number9: CELL1(9) = 45 - (CELL1(1) + CELL1(2) + CELL1(3) + CELL1(4) + CELL1(5) + CELL1(6) + CELL1(7) + CELL1(8)) 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL1(9) = SCREEN(9, Look) - 48 THEN GOTO StartGrid1 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL1(9) = SCREEN(Look, 20) - 48 THEN GOTO StartGrid1 NEXT Look LOCATE 9, 19: PRINT CELL1(9) END IF '--------------------------- 'SUB Grid2 Restart = 0 StartGrid2: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 5, 24: PRINT " ": LOCATE 5, 28: PRINT " ": LOCATE 5, 32: PRINT " " LOCATE 7, 24: PRINT " ": LOCATE 7, 28: PRINT " ": LOCATE 7, 32: PRINT " " LOCATE 9, 24: PRINT " ": LOCATE 9, 28: PRINT " ": LOCATE 9, 32: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid2 'First CELL Attempt = 0 IF CELL2(1) = 32 THEN '(CHR$32 is a space) Number10: CELL2(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL2(1) FOR CHK = 1 TO Attempt IF CELL2(1) = PickedNum(CHK - 1) THEN GOTO Number10 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL2(1) = CELL2(Check) THEN GOTO Number10 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL2(1) = SCREEN(5, Look) - 48 THEN GOTO Number10 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL2(1) = SCREEN(Look, 24) - 48 THEN GOTO Number10 NEXT Look LOCATE 5, 23: PRINT CELL2(1) END IF '--------------------------- 'Second CELL Attempt = 0 IF CELL2(2) = 32 THEN Number11: CELL2(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(2) FOR CHK = 1 TO Attempt IF CELL2(2) = PickedNum(CHK - 1) THEN GOTO Number11 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL2(2) = CELL2(Check) THEN GOTO Number11 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL2(2) = SCREEN(5, Look) - 48 THEN GOTO Number11 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL2(2) = SCREEN(Look, 28) - 48 THEN GOTO Number11 NEXT Look LOCATE 5, 27: PRINT CELL2(2) END IF '--------------------------- 'Third CELL Attempt = 0 IF CELL2(3) = 32 THEN Number12: CELL2(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(3) FOR CHK = 1 TO Attempt IF CELL2(3) = PickedNum(CHK - 1) THEN GOTO Number12 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL2(3) = CELL2(Check) THEN GOTO Number12 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL2(3) = SCREEN(5, Look) - 48 THEN GOTO Number12 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL2(3) = SCREEN(Look, 32) - 48 THEN GOTO Number12 NEXT Look LOCATE 5, 31: PRINT CELL2(3) END IF '--------------------------- 'Fourth CELL Attempt = 0 IF CELL2(4) = 32 THEN Number13: CELL2(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(4) FOR CHK = 1 TO Attempt IF CELL2(4) = PickedNum(CHK - 1) THEN GOTO Number13 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL2(4) = CELL2(Check) THEN GOTO Number13 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL2(4) = SCREEN(7, Look) - 48 THEN GOTO Number13 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL2(4) = SCREEN(Look, 24) - 48 THEN GOTO Number13 NEXT Look LOCATE 7, 23: PRINT CELL2(4) END IF '--------------------------- 'Fifth CELL Attempt = 0 IF CELL2(5) = 32 THEN Number14: CELL2(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(5) FOR CHK = 1 TO Attempt IF CELL2(5) = PickedNum(CHK - 1) THEN GOTO Number14 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL2(5) = CELL2(Check) THEN GOTO Number14 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL2(5) = SCREEN(7, Look) - 48 THEN GOTO Number14 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL2(5) = SCREEN(Look, 28) - 48 THEN GOTO Number14 NEXT Look LOCATE 7, 27: PRINT CELL2(5) END IF '--------------------------- 'sixth CELL Attempt = 0 IF CELL2(6) = 32 THEN Number15: CELL2(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(6) FOR CHK = 1 TO Attempt IF CELL2(6) = PickedNum(CHK - 1) THEN GOTO Number15 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL2(6) = CELL2(Check) THEN GOTO Number15 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL2(6) = SCREEN(7, Look) - 48 THEN GOTO Number15 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL2(6) = SCREEN(Look, 32) - 48 THEN GOTO Number15 NEXT Look LOCATE 7, 31: PRINT CELL2(6) END IF '--------------------------- 'seventh CELL Attempt = 0 IF CELL2(7) = 32 THEN Number16: CELL2(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(7) FOR CHK = 1 TO Attempt IF CELL2(7) = PickedNum(CHK - 1) THEN GOTO Number16 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL2(7) = CELL2(Check) THEN GOTO Number16 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL2(7) = SCREEN(9, Look) - 48 THEN GOTO Number16 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL2(7) = SCREEN(Look, 24) - 48 THEN GOTO Number16 NEXT Look LOCATE 9, 23: PRINT CELL2(7) END IF '--------------------------- 'eighth CELL Attempt = 0 IF CELL2(8) = 32 THEN Number17: CELL2(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid2 PickedNum(Attempt) = CELL2(8) FOR CHK = 1 TO Attempt IF CELL2(8) = PickedNum(CHK - 1) THEN GOTO Number17 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL2(8) = CELL2(Check) THEN GOTO Number17 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL2(8) = SCREEN(9, Look) - 48 THEN GOTO Number17 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL2(8) = SCREEN(Look, 28) - 48 THEN GOTO Number17 NEXT Look LOCATE 9, 27: PRINT CELL2(8) END IF '--------------------------- 'ninth CELL IF CELL2(9) = 32 THEN Number18: CELL2(9) = 45 - (CELL2(1) + CELL2(2) + CELL2(3) + CELL2(4) + CELL2(5) + CELL2(6) + CELL2(7) + CELL2(8)) 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL2(9) = SCREEN(9, Look) - 48 THEN GOTO StartGrid2 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL2(9) = SCREEN(Look, 32) - 48 THEN GOTO StartGrid2 NEXT Look LOCATE 9, 31: PRINT CELL2(9) END IF '--------------------------- 'SUB Grid3 Restart = 0 StartGrid3: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 5, 36: PRINT " ": LOCATE 5, 40: PRINT " ": LOCATE 5, 44: PRINT " " LOCATE 7, 36: PRINT " ": LOCATE 7, 40: PRINT " ": LOCATE 7, 44: PRINT " " LOCATE 9, 36: PRINT " ": LOCATE 9, 40: PRINT " ": LOCATE 9, 44: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid3 'First CELL Attempt = 0 IF CELL3(1) = 32 THEN '(CHR$32 is a space) Number19: CELL3(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL3(1) FOR CHK = 1 TO Attempt IF CELL3(1) = PickedNum(CHK - 1) THEN GOTO Number19 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL3(1) = CELL3(Check) THEN GOTO Number19 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL3(1) = SCREEN(5, Look) - 48 THEN GOTO Number19 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL3(1) = SCREEN(Look, 36) - 48 THEN GOTO Number19 NEXT Look LOCATE 5, 35: PRINT CELL3(1) END IF '--------------------------- 'Second CELL Attempt = 0 IF CELL3(2) = 32 THEN Number20: CELL3(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(2) FOR CHK = 1 TO Attempt IF CELL3(2) = PickedNum(CHK - 1) THEN GOTO Number20 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL3(2) = CELL3(Check) THEN GOTO Number20 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL3(2) = SCREEN(5, Look) - 48 THEN GOTO Number20 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL3(2) = SCREEN(Look, 40) - 48 THEN GOTO Number20 NEXT Look LOCATE 5, 39: PRINT CELL3(2) END IF '--------------------------- 'Third CELL Attempt = 0 IF CELL3(3) = 32 THEN Number21: CELL3(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(3) FOR CHK = 1 TO Attempt IF CELL3(3) = PickedNum(CHK - 1) THEN GOTO Number21 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL3(3) = CELL3(Check) THEN GOTO Number21 NEXT Check 'Find numbers in top row FOR Look = 12 TO 44 STEP 4 IF CELL3(3) = SCREEN(5, Look) - 48 THEN GOTO Number21 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL3(3) = SCREEN(Look, 44) - 48 THEN GOTO Number21 NEXT Look LOCATE 5, 43: PRINT CELL3(3) END IF '--------------------------- 'Fourth CELL Attempt = 0 IF CELL3(4) = 32 THEN Number22: CELL3(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(4) FOR CHK = 1 TO Attempt IF CELL3(4) = PickedNum(CHK - 1) THEN GOTO Number22 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL3(4) = CELL3(Check) THEN GOTO Number22 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL3(4) = SCREEN(7, Look) - 48 THEN GOTO Number22 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL3(4) = SCREEN(Look, 36) - 48 THEN GOTO Number22 NEXT Look LOCATE 7, 35: PRINT CELL3(4) END IF '--------------------------- 'Fifth CELL Attempt = 0 IF CELL3(5) = 32 THEN Number23: CELL3(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(5) FOR CHK = 1 TO Attempt IF CELL3(5) = PickedNum(CHK - 1) THEN GOTO Number23 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL3(5) = CELL3(Check) THEN GOTO Number23 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL3(5) = SCREEN(7, Look) - 48 THEN GOTO Number23 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL3(5) = SCREEN(Look, 40) - 48 THEN GOTO Number23 NEXT Look LOCATE 7, 39: PRINT CELL3(5) END IF '--------------------------- 'sixth CELL Attempt = 0 IF CELL3(6) = 32 THEN Number24: CELL3(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(6) FOR CHK = 1 TO Attempt IF CELL3(6) = PickedNum(CHK - 1) THEN GOTO Number24 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL3(6) = CELL3(Check) THEN GOTO Number24 NEXT Check 'Find numbers in second row FOR Look = 12 TO 44 STEP 4 IF CELL3(6) = SCREEN(7, Look) - 48 THEN GOTO Number24 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL3(6) = SCREEN(Look, 44) - 48 THEN GOTO Number24 NEXT Look LOCATE 7, 43: PRINT CELL3(6) END IF '--------------------------- 'seventh CELL Attempt = 0 IF CELL3(7) = 32 THEN Number25: CELL3(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(7) FOR CHK = 1 TO Attempt IF CELL3(7) = PickedNum(CHK - 1) THEN GOTO Number25 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL3(7) = CELL3(Check) THEN GOTO Number25 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL3(7) = SCREEN(9, Look) - 48 THEN GOTO Number25 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL3(7) = SCREEN(Look, 36) - 48 THEN GOTO Number25 NEXT Look LOCATE 9, 35: PRINT CELL3(7) END IF '--------------------------- 'eighth CELL Attempt = 0 IF CELL3(8) = 32 THEN Number26: CELL3(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid3 PickedNum(Attempt) = CELL3(8) FOR CHK = 1 TO Attempt IF CELL3(8) = PickedNum(CHK - 1) THEN GOTO Number26 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL3(8) = CELL3(Check) THEN GOTO Number26 NEXT Check 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL3(8) = SCREEN(9, Look) - 48 THEN GOTO Number26 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL3(8) = SCREEN(Look, 40) - 48 THEN GOTO Number26 NEXT Look LOCATE 9, 39: PRINT CELL3(8) END IF '--------------------------- 'ninth CELL IF CELL3(9) = 32 THEN Number27: CELL3(9) = 45 - (CELL3(1) + CELL3(2) + CELL3(3) + CELL3(4) + CELL3(5) + CELL3(6) + CELL3(7) + CELL3(8)) 'Find numbers in third row FOR Look = 12 TO 44 STEP 4 IF CELL3(9) = SCREEN(9, Look) - 48 THEN GOTO StartGrid3 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL3(9) = SCREEN(Look, 44) - 48 THEN GOTO StartGrid3 NEXT Look LOCATE 9, 43: PRINT CELL3(9) END IF '--------------------------- 'SUB Grid4 Restart = 0 StartGrid4: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 11, 12: PRINT " ": LOCATE 11, 16: PRINT " ": LOCATE 11, 20: PRINT " " LOCATE 13, 12: PRINT " ": LOCATE 13, 16: PRINT " ": LOCATE 13, 20: PRINT " " LOCATE 15, 12: PRINT " ": LOCATE 15, 16: PRINT " ": LOCATE 15, 20: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid4 'First CELL (Number 28) Attempt = 0 IF CELL4(1) = 32 THEN Number28: CELL4(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL4(1) FOR CHK = 1 TO Attempt IF CELL4(1) = PickedNum(CHK - 1) THEN GOTO Number28 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL4(1) = CELL4(Check) THEN GOTO Number28 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL4(1) = SCREEN(11, Look) - 48 THEN GOTO Number28 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL4(1) = SCREEN(Look, 12) - 48 THEN GOTO Number28 NEXT Look LOCATE 11, 11: PRINT CELL4(1) END IF '--------------------------- 'Second CELL (Number 29) Attempt = 0 IF CELL4(2) = 32 THEN Number29: CELL4(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(2) FOR CHK = 1 TO Attempt IF CELL4(2) = PickedNum(CHK - 1) THEN GOTO Number29 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL4(2) = CELL4(Check) THEN GOTO Number29 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL4(2) = SCREEN(11, Look) - 48 THEN GOTO Number29 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL4(2) = SCREEN(Look, 16) - 48 THEN GOTO Number29 NEXT Look LOCATE 11, 15: PRINT CELL4(2) END IF '--------------------------- 'Third CELL (Number 30) Attempt = 0 IF CELL4(3) = 32 THEN Number30: CELL4(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(3) FOR CHK = 1 TO Attempt IF CELL4(3) = PickedNum(CHK - 1) THEN GOTO Number30 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL4(3) = CELL4(Check) THEN GOTO Number30 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL4(3) = SCREEN(11, Look) - 48 THEN GOTO Number30 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL4(3) = SCREEN(Look, 20) - 48 THEN GOTO Number30 NEXT Look LOCATE 11, 19: PRINT CELL4(3) END IF '--------------------------- 'Fourth CELL (Number 31) Attempt = 0 IF CELL4(4) = 32 THEN Number31: CELL4(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(4) FOR CHK = 1 TO Attempt IF CELL4(4) = PickedNum(CHK - 1) THEN GOTO Number31 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL4(4) = CELL4(Check) THEN GOTO Number31 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL4(4) = SCREEN(13, Look) - 48 THEN GOTO Number31 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL4(4) = SCREEN(Look, 12) - 48 THEN GOTO Number31 NEXT Look LOCATE 13, 11: PRINT CELL4(4) END IF '--------------------------- 'Fifth CELL (Number 32) Attempt = 0 IF CELL4(5) = 32 THEN Number32: CELL4(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(5) FOR CHK = 1 TO Attempt IF CELL4(5) = PickedNum(CHK - 1) THEN GOTO Number32 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL4(5) = CELL4(Check) THEN GOTO Number32 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL4(5) = SCREEN(13, Look) - 48 THEN GOTO Number32 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL4(5) = SCREEN(Look, 16) - 48 THEN GOTO Number32 NEXT Look LOCATE 13, 15: PRINT CELL4(5) END IF '--------------------------- 'sixth CELL (Number 33) Attempt = 0 IF CELL4(6) = 32 THEN Number33: CELL4(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(6) FOR CHK = 1 TO Attempt IF CELL4(6) = PickedNum(CHK - 1) THEN GOTO Number33 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL4(6) = CELL4(Check) THEN GOTO Number33 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL4(6) = SCREEN(13, Look) - 48 THEN GOTO Number33 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL4(6) = SCREEN(Look, 20) - 48 THEN GOTO Number33 NEXT Look LOCATE 13, 19: PRINT CELL4(6) END IF '--------------------------- 'seventh CELL (Number 34) Attempt = 0 IF CELL4(7) = 32 THEN Number34: CELL4(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(7) FOR CHK = 1 TO Attempt IF CELL4(7) = PickedNum(CHK - 1) THEN GOTO Number34 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL4(7) = CELL4(Check) THEN GOTO Number34 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL4(7) = SCREEN(15, Look) - 48 THEN GOTO Number34 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL4(7) = SCREEN(Look, 12) - 48 THEN GOTO Number34 NEXT Look LOCATE 15, 11: PRINT CELL4(7) END IF '--------------------------- 'eighth CELL (Number 35) Attempt = 0 IF CELL4(8) = 32 THEN Number35: CELL4(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid4 PickedNum(Attempt) = CELL4(8) FOR CHK = 1 TO Attempt IF CELL4(8) = PickedNum(CHK - 1) THEN GOTO Number35 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL4(8) = CELL4(Check) THEN GOTO Number35 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL4(8) = SCREEN(15, Look) - 48 THEN GOTO Number35 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL4(8) = SCREEN(Look, 16) - 48 THEN GOTO Number35 NEXT Look LOCATE 15, 15: PRINT CELL4(8) END IF '--------------------------- 'ninth CELL (Number 36) IF CELL4(9) = 32 THEN Number36: CELL4(9) = 45 - (CELL4(1) + CELL4(2) + CELL4(3) + CELL4(4) + CELL4(5) + CELL4(6) + CELL4(7) + CELL4(8)) 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL4(9) = SCREEN(15, Look) - 48 THEN GOTO StartGrid4 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL4(9) = SCREEN(Look, 20) - 48 THEN GOTO StartGrid4 NEXT Look LOCATE 15, 19: PRINT CELL4(9) END IF '--------------------------- 'SUB Grid5 Restart = 0 StartGrid5: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 11, 24: PRINT " ": LOCATE 11, 28: PRINT " ": LOCATE 11, 32: PRINT " " LOCATE 13, 24: PRINT " ": LOCATE 13, 28: PRINT " ": LOCATE 13, 32: PRINT " " LOCATE 15, 24: PRINT " ": LOCATE 15, 28: PRINT " ": LOCATE 15, 32: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid5 'First CELL (Number 37) Attempt = 0 IF CELL5(1) = 32 THEN Number37: CELL5(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL5(1) FOR CHK = 1 TO Attempt IF CELL5(1) = PickedNum(CHK - 1) THEN GOTO Number37 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL5(1) = CELL5(Check) THEN GOTO Number37 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL5(1) = SCREEN(11, Look) - 48 THEN GOTO Number37 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL5(1) = SCREEN(Look, 24) - 48 THEN GOTO Number37 NEXT Look LOCATE 11, 23: PRINT CELL5(1) END IF '--------------------------- 'Second CELL (Number 38) Attempt = 0 IF CELL5(2) = 32 THEN Number38: CELL5(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(2) FOR CHK = 1 TO Attempt IF CELL5(2) = PickedNum(CHK - 1) THEN GOTO Number38 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL5(2) = CELL5(Check) THEN GOTO Number38 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL5(2) = SCREEN(11, Look) - 48 THEN GOTO Number38 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL5(2) = SCREEN(Look, 28) - 48 THEN GOTO Number38 NEXT Look LOCATE 11, 27: PRINT CELL5(2) END IF '--------------------------- 'Third CELL (Number 39) Attempt = 0 IF CELL5(3) = 32 THEN Number39: CELL5(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(3) FOR CHK = 1 TO Attempt IF CELL5(3) = PickedNum(CHK - 1) THEN GOTO Number39 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL5(3) = CELL5(Check) THEN GOTO Number39 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL5(3) = SCREEN(11, Look) - 48 THEN GOTO Number39 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL5(3) = SCREEN(Look, 32) - 48 THEN GOTO Number39 NEXT Look LOCATE 11, 31: PRINT CELL5(3) END IF '--------------------------- 'Fourth CELL (Number 40) Attempt = 0 IF CELL5(4) = 32 THEN Number40: CELL5(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(4) FOR CHK = 1 TO Attempt IF CELL5(4) = PickedNum(CHK - 1) THEN GOTO Number40 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL5(4) = CELL5(Check) THEN GOTO Number40 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL5(4) = SCREEN(13, Look) - 48 THEN GOTO Number40 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL5(4) = SCREEN(Look, 24) - 48 THEN GOTO Number40 NEXT Look LOCATE 13, 23: PRINT CELL5(4) END IF '--------------------------- 'Fifth CELL (Number 41) Attempt = 0 IF CELL5(5) = 32 THEN Number41: CELL5(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(5) FOR CHK = 1 TO Attempt IF CELL5(5) = PickedNum(CHK - 1) THEN GOTO Number41 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL5(5) = CELL5(Check) THEN GOTO Number41 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL5(5) = SCREEN(13, Look) - 48 THEN GOTO Number41 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL5(5) = SCREEN(Look, 28) - 48 THEN GOTO Number41 NEXT Look LOCATE 13, 27: PRINT CELL5(5) END IF '--------------------------- 'sixth CELL (Number 42) Attempt = 0 IF CELL5(6) = 32 THEN Number42: CELL5(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(6) FOR CHK = 1 TO Attempt IF CELL5(6) = PickedNum(CHK - 1) THEN GOTO Number42 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 6 IF Check = 6 THEN Check = 7 IF CELL5(6) = CELL5(Check) THEN GOTO Number42 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL5(6) = SCREEN(13, Look) - 48 THEN GOTO Number42 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL5(6) = SCREEN(Look, 32) - 48 THEN GOTO Number42 NEXT Look LOCATE 13, 31: PRINT CELL5(6) END IF '--------------------------- 'seventh CELL (Number 43) Attempt = 0 IF CELL5(7) = 32 THEN Number43: CELL5(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(7) FOR CHK = 1 TO Attempt IF CELL5(7) = PickedNum(CHK - 1) THEN GOTO Number43 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL5(7) = CELL5(Check) THEN GOTO Number43 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL5(7) = SCREEN(15, Look) - 48 THEN GOTO Number43 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL5(7) = SCREEN(Look, 24) - 48 THEN GOTO Number43 NEXT Look LOCATE 15, 23: PRINT CELL5(7) END IF '--------------------------- 'eighth CELL (Number 44) Attempt = 0 IF CELL5(8) = 32 THEN Number44: CELL5(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid5 PickedNum(Attempt) = CELL5(8) FOR CHK = 1 TO Attempt IF CELL5(8) = PickedNum(CHK - 1) THEN GOTO Number44 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL5(8) = CELL5(Check) THEN GOTO Number44 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL5(8) = SCREEN(15, Look) - 48 THEN GOTO Number44 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL5(8) = SCREEN(Look, 28) - 48 THEN GOTO Number44 NEXT Look LOCATE 15, 27: PRINT CELL5(8) END IF '--------------------------- 'ninth CELL (Number 45) IF CELL5(9) = 32 THEN Number45: CELL5(9) = 45 - (CELL5(1) + CELL5(2) + CELL5(3) + CELL5(4) + CELL5(5) + CELL5(6) + CELL5(7) + CELL5(8)) 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL5(9) = SCREEN(15, Look) - 48 THEN GOTO StartGrid5 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL5(9) = SCREEN(Look, 32) - 48 THEN GOTO StartGrid5 NEXT Look LOCATE 15, 31: PRINT CELL5(9) END IF '--------------------------- 'SUB Grid6 Restart = 0 StartGrid6: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 11, 36: PRINT " ": LOCATE 11, 40: PRINT " ": LOCATE 11, 44: PRINT " " LOCATE 13, 36: PRINT " ": LOCATE 13, 40: PRINT " ": LOCATE 13, 44: PRINT " " LOCATE 15, 36: PRINT " ": LOCATE 15, 40: PRINT " ": LOCATE 15, 44: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid6 'First CELL (Number 46) Attempt = 0 IF CELL6(1) = 32 THEN Number46: CELL6(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL6(1) FOR CHK = 1 TO Attempt IF CELL6(1) = PickedNum(CHK - 1) THEN GOTO Number46 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL6(1) = CELL6(Check) THEN GOTO Number46 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL6(1) = SCREEN(11, Look) - 48 THEN GOTO Number46 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL6(1) = SCREEN(Look, 36) - 48 THEN GOTO Number46 NEXT Look LOCATE 11, 35: PRINT CELL6(1) END IF '--------------------------- 'Second CELL (Number 47) Attempt = 0 IF CELL6(2) = 32 THEN Number47: CELL6(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(2) FOR CHK = 1 TO Attempt IF CELL6(2) = PickedNum(CHK - 1) THEN GOTO Number47 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL6(2) = CELL6(Check) THEN GOTO Number47 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL6(2) = SCREEN(11, Look) - 48 THEN GOTO Number47 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL6(2) = SCREEN(Look, 40) - 48 THEN GOTO Number47 NEXT Look LOCATE 11, 39: PRINT CELL6(2) END IF '--------------------------- 'Third CELL (Number 48) Attempt = 0 IF CELL6(3) = 32 THEN Number48: CELL6(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(3) FOR CHK = 1 TO Attempt IF CELL6(3) = PickedNum(CHK - 1) THEN GOTO Number48 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL6(3) = CELL6(Check) THEN GOTO Number48 NEXT Check 'Find numbers in forth row FOR Look = 12 TO 44 STEP 4 IF CELL6(3) = SCREEN(11, Look) - 48 THEN GOTO Number48 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL6(3) = SCREEN(Look, 44) - 48 THEN GOTO Number48 NEXT Look LOCATE 11, 43: PRINT CELL6(3) END IF '--------------------------- 'Fourth CELL (Number 49) Attempt = 0 IF CELL6(4) = 32 THEN Number49: CELL6(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(4) FOR CHK = 1 TO Attempt IF CELL6(4) = PickedNum(CHK - 1) THEN GOTO Number49 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL6(4) = CELL6(Check) THEN GOTO Number49 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL6(4) = SCREEN(13, Look) - 48 THEN GOTO Number49 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL6(4) = SCREEN(Look, 36) - 48 THEN GOTO Number49 NEXT Look LOCATE 13, 35: PRINT CELL6(4) END IF '--------------------------- 'Fifth CELL (Number 50) Attempt = 0 IF CELL6(5) = 32 THEN Number50: CELL6(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(5) FOR CHK = 1 TO Attempt IF CELL6(5) = PickedNum(CHK - 1) THEN GOTO Number50 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL6(5) = CELL6(Check) THEN GOTO Number50 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL6(5) = SCREEN(13, Look) - 48 THEN GOTO Number50 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL6(5) = SCREEN(Look, 40) - 48 THEN GOTO Number50 NEXT Look LOCATE 13, 39: PRINT CELL6(5) END IF '--------------------------- 'sixth CELL (Number 51) Attempt = 0 IF CELL6(6) = 32 THEN Number51: CELL6(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(6) FOR CHK = 1 TO Attempt IF CELL6(6) = PickedNum(CHK - 1) THEN GOTO Number51 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL6(6) = CELL6(Check) THEN GOTO Number51 NEXT Check 'Find numbers in the fifth row FOR Look = 12 TO 44 STEP 4 IF CELL6(6) = SCREEN(13, Look) - 48 THEN GOTO Number51 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL6(6) = SCREEN(Look, 44) - 48 THEN GOTO Number51 NEXT Look LOCATE 13, 43: PRINT CELL6(6) END IF '--------------------------- 'seventh CELL (Number 52) Attempt = 0 IF CELL6(7) = 32 THEN Number52: CELL6(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(7) FOR CHK = 1 TO Attempt IF CELL6(7) = PickedNum(CHK - 1) THEN GOTO Number52 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL6(7) = CELL6(Check) THEN GOTO Number52 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL6(7) = SCREEN(15, Look) - 48 THEN GOTO Number52 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL6(7) = SCREEN(Look, 36) - 48 THEN GOTO Number52 NEXT Look LOCATE 15, 35: PRINT CELL6(7) END IF '--------------------------- 'eighth CELL (Number 53) Attempt = 0 IF CELL6(8) = 32 THEN Number53: CELL6(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid6 PickedNum(Attempt) = CELL6(8) FOR CHK = 1 TO Attempt IF CELL6(8) = PickedNum(CHK - 1) THEN GOTO Number53 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL6(8) = CELL6(Check) THEN GOTO Number53 NEXT Check 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL6(8) = SCREEN(15, Look) - 48 THEN GOTO Number53 NEXT Look 'Find numbers in the eight column FOR Look = 5 TO 21 STEP 2 IF CELL6(8) = SCREEN(Look, 40) - 48 THEN GOTO Number53 NEXT Look LOCATE 15, 39: PRINT CELL6(8) END IF '--------------------------- 'ninth CELL (Number 54) IF CELL6(9) = 32 THEN Number54: CELL6(9) = 45 - (CELL6(1) + CELL6(2) + CELL6(3) + CELL6(4) + CELL6(5) + CELL6(6) + CELL6(7) + CELL6(8)) 'Find numbers in the sixth row FOR Look = 12 TO 44 STEP 4 IF CELL6(9) = SCREEN(15, Look) - 48 THEN GOTO StartGrid6 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL6(9) = SCREEN(Look, 44) - 48 THEN GOTO StartGrid6 NEXT Look LOCATE 15, 43: PRINT CELL6(9) END IF '--------------------------- 'SUB Grid7 Restart = 0 StartGrid7: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 17, 12: PRINT " ": LOCATE 17, 16: PRINT " ": LOCATE 17, 20: PRINT " " LOCATE 19, 12: PRINT " ": LOCATE 19, 16: PRINT " ": LOCATE 19, 20: PRINT " " LOCATE 21, 12: PRINT " ": LOCATE 21, 16: PRINT " ": LOCATE 21, 20: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid7 'First CELL (Number 55) Attempt = 0 IF CELL7(1) = 32 THEN Number55: CELL7(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL7(1) FOR CHK = 1 TO Attempt IF CELL7(1) = PickedNum(CHK - 1) THEN GOTO Number55 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL7(1) = CELL7(Check) THEN GOTO Number55 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL7(1) = SCREEN(17, Look) - 48 THEN GOTO Number55 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL7(1) = SCREEN(Look, 12) - 48 THEN GOTO Number55 NEXT Look LOCATE 17, 11: PRINT CELL7(1) END IF '--------------------------- 'Second CELL (Number 56) Attempt = 0 IF CELL7(2) = 32 THEN Number56: CELL7(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(2) FOR CHK = 1 TO Attempt IF CELL7(2) = PickedNum(CHK - 1) THEN GOTO Number56 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL7(2) = CELL7(Check) THEN GOTO Number56 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL7(2) = SCREEN(17, Look) - 48 THEN GOTO Number56 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL7(2) = SCREEN(Look, 16) - 48 THEN GOTO Number56 NEXT Look LOCATE 17, 15: PRINT CELL7(2) END IF '--------------------------- 'Third CELL (Number 57) Attempt = 0 IF CELL7(3) = 32 THEN Number57: CELL7(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(3) FOR CHK = 1 TO Attempt IF CELL7(3) = PickedNum(CHK - 1) THEN GOTO Number57 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL7(3) = CELL7(Check) THEN GOTO Number57 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL7(3) = SCREEN(17, Look) - 48 THEN GOTO Number57 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL7(3) = SCREEN(Look, 20) - 48 THEN GOTO Number57 NEXT Look LOCATE 17, 19: PRINT CELL7(3) END IF '--------------------------- 'Fourth CELL (Number 58) Attempt = 0 IF CELL7(4) = 32 THEN Number58: CELL7(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(4) FOR CHK = 1 TO Attempt IF CELL7(4) = PickedNum(CHK - 1) THEN GOTO Number58 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL7(4) = CELL7(Check) THEN GOTO Number58 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL7(4) = SCREEN(19, Look) - 48 THEN GOTO Number58 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL7(4) = SCREEN(Look, 12) - 48 THEN GOTO Number58 NEXT Look LOCATE 19, 11: PRINT CELL7(4) END IF '--------------------------- 'Fifth CELL (Number 59) Attempt = 0 IF CELL7(5) = 32 THEN Number59: CELL7(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(5) FOR CHK = 1 TO Attempt IF CELL7(5) = PickedNum(CHK - 1) THEN GOTO Number59 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL7(5) = CELL7(Check) THEN GOTO Number59 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL7(5) = SCREEN(19, Look) - 48 THEN GOTO Number59 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL7(5) = SCREEN(Look, 16) - 48 THEN GOTO Number59 NEXT Look LOCATE 19, 15: PRINT CELL7(5) END IF '--------------------------- 'sixth CELL (Number 60) Attempt = 0 IF CELL7(6) = 32 THEN Number60: CELL7(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(6) FOR CHK = 1 TO Attempt IF CELL7(6) = PickedNum(CHK - 1) THEN GOTO Number60 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL7(6) = CELL7(Check) THEN GOTO Number60 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL7(6) = SCREEN(19, Look) - 48 THEN GOTO Number60 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL7(6) = SCREEN(Look, 20) - 48 THEN GOTO Number60 NEXT Look LOCATE 19, 19: PRINT CELL7(6) END IF '--------------------------- 'seventh CELL (Number 61) Attempt = 0 IF CELL7(7) = 32 THEN Number61: CELL7(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(7) FOR CHK = 1 TO Attempt IF CELL7(7) = PickedNum(CHK - 1) THEN GOTO Number61 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL7(7) = CELL7(Check) THEN GOTO Number61 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL7(7) = SCREEN(21, Look) - 48 THEN GOTO Number61 NEXT Look 'Find numbers in the first column FOR Look = 5 TO 21 STEP 2 IF CELL7(7) = SCREEN(Look, 12) - 48 THEN GOTO Number61 NEXT Look LOCATE 21, 11: PRINT CELL7(7) END IF '--------------------------- 'eighth CELL (Number 62) Attempt = 0 IF CELL7(8) = 32 THEN Number62: CELL7(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid7 PickedNum(Attempt) = CELL7(8) FOR CHK = 1 TO Attempt IF CELL7(8) = PickedNum(CHK - 1) THEN GOTO Number62 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL7(8) = CELL7(Check) THEN GOTO Number62 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL7(8) = SCREEN(21, Look) - 48 THEN GOTO Number62 NEXT Look 'Find numbers in the second column FOR Look = 5 TO 21 STEP 2 IF CELL7(8) = SCREEN(Look, 16) - 48 THEN GOTO Number62 NEXT Look LOCATE 21, 15: PRINT CELL7(8) END IF '--------------------------- 'ninth CELL (Number 63) IF CELL7(9) = 32 THEN Number63: CELL7(9) = 45 - (CELL7(1) + CELL7(2) + CELL7(3) + CELL7(4) + CELL7(5) + CELL7(6) + CELL7(7) + CELL7(8)) 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL7(9) = SCREEN(21, Look) - 48 THEN GOTO StartGrid7 NEXT Look 'Find numbers in the third column FOR Look = 5 TO 21 STEP 2 IF CELL7(9) = SCREEN(Look, 20) - 48 THEN GOTO StartGrid7 NEXT Look LOCATE 21, 19: PRINT CELL7(9) END IF '--------------------------- 'SUB Grid8 Restart = 0 StartGrid8: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 17, 24: PRINT " ": LOCATE 17, 28: PRINT " ": LOCATE 17, 32: PRINT " " LOCATE 19, 24: PRINT " ": LOCATE 19, 28: PRINT " ": LOCATE 19, 32: PRINT " " LOCATE 21, 24: PRINT " ": LOCATE 21, 28: PRINT " ": LOCATE 21, 32: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid8 'First CELL (Number 64) Attempt = 0 IF CELL8(1) = 32 THEN Number64: CELL8(1) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL8(1) FOR CHK = 1 TO Attempt IF CELL8(1) = PickedNum(CHK - 1) THEN GOTO Number64 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL8(1) = CELL8(Check) THEN GOTO Number64 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL8(1) = SCREEN(17, Look) - 48 THEN GOTO Number64 NEXT Look 'Find numbers in the forth column FOR Look = 5 TO 21 STEP 2 IF CELL8(1) = SCREEN(Look, 24) - 48 THEN GOTO Number64 NEXT Look LOCATE 17, 23: PRINT CELL8(1) END IF '--------------------------- 'Second CELL (Number 65) Attempt = 0 IF CELL8(2) = 32 THEN Number65: CELL8(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(2) FOR CHK = 1 TO Attempt IF CELL8(2) = PickedNum(CHK - 1) THEN GOTO Number65 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL8(2) = CELL8(Check) THEN GOTO Number65 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL8(2) = SCREEN(17, Look) - 48 THEN GOTO Number65 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL8(2) = SCREEN(Look, 28) - 48 THEN GOTO Number65 NEXT Look LOCATE 17, 27: PRINT CELL8(2) END IF '--------------------------- 'Third CELL (Number 66) Attempt = 0 IF CELL8(3) = 32 THEN Number66: CELL8(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(3) FOR CHK = 1 TO Attempt IF CELL8(3) = PickedNum(CHK - 1) THEN GOTO Number66 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL8(3) = CELL8(Check) THEN GOTO Number66 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL8(3) = SCREEN(17, Look) - 48 THEN GOTO Number66 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL8(3) = SCREEN(Look, 32) - 48 THEN GOTO Number66 NEXT Look LOCATE 17, 31: PRINT CELL8(3) END IF '--------------------------- 'Fourth CELL (Number 67) Attempt = 0 IF CELL8(4) = 32 THEN Number67: CELL8(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(4) FOR CHK = 1 TO Attempt IF CELL8(4) = PickedNum(CHK - 1) THEN GOTO Number67 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL8(4) = CELL8(Check) THEN GOTO Number67 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL8(4) = SCREEN(19, Look) - 48 THEN GOTO Number67 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL8(4) = SCREEN(Look, 24) - 48 THEN GOTO Number67 NEXT Look LOCATE 19, 23: PRINT CELL8(4) END IF '--------------------------- 'Fifth CELL (Number 68) Attempt = 0 IF CELL8(5) = 32 THEN Number68: CELL8(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(5) FOR CHK = 1 TO Attempt IF CELL8(5) = PickedNum(CHK - 1) THEN GOTO Number68 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL8(5) = CELL8(Check) THEN GOTO Number68 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL8(5) = SCREEN(19, Look) - 48 THEN GOTO Number68 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL8(5) = SCREEN(Look, 28) - 48 THEN GOTO Number68 NEXT Look LOCATE 19, 27: PRINT CELL8(5) END IF '--------------------------- 'sixth CELL (Number 69) Attempt = 0 IF CELL8(6) = 32 THEN Number69: CELL8(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(6) FOR CHK = 1 TO Attempt IF CELL8(6) = PickedNum(CHK - 1) THEN GOTO Number69 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL8(6) = CELL8(Check) THEN GOTO Number69 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL8(6) = SCREEN(19, Look) - 48 THEN GOTO Number69 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL8(6) = SCREEN(Look, 32) - 48 THEN GOTO Number69 NEXT Look LOCATE 19, 31: PRINT CELL8(6) END IF '--------------------------- 'seventh CELL (Number 70) Attempt = 0 IF CELL8(7) = 32 THEN Number70: CELL8(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(7) FOR CHK = 1 TO Attempt IF CELL8(7) = PickedNum(CHK - 1) THEN GOTO Number70 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL8(7) = CELL8(Check) THEN GOTO Number70 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL8(7) = SCREEN(21, Look) - 48 THEN GOTO Number70 NEXT Look 'Find numbers in the fourth column FOR Look = 5 TO 21 STEP 2 IF CELL8(7) = SCREEN(Look, 24) - 48 THEN GOTO Number70 NEXT Look LOCATE 21, 23: PRINT CELL8(7) END IF '--------------------------- 'eighth CELL (Number 71) Attempt = 0 IF CELL8(8) = 32 THEN Number71: CELL8(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid8 PickedNum(Attempt) = CELL8(8) FOR CHK = 1 TO Attempt IF CELL8(8) = PickedNum(CHK - 1) THEN GOTO Number71 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL8(8) = CELL8(Check) THEN GOTO Number71 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL8(8) = SCREEN(21, Look) - 48 THEN GOTO Number71 NEXT Look 'Find numbers in the fifth column FOR Look = 5 TO 21 STEP 2 IF CELL8(8) = SCREEN(Look, 28) - 48 THEN GOTO Number71 NEXT Look LOCATE 21, 27: PRINT CELL8(8) END IF '--------------------------- 'ninth CELL (Number 72) IF CELL8(9) = 32 THEN Number72: CELL8(9) = 45 - (CELL8(1) + CELL8(2) + CELL8(3) + CELL8(4) + CELL8(5) + CELL8(6) + CELL8(7) + CELL8(8)) 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL8(9) = SCREEN(21, Look) - 48 THEN GOTO StartGrid8 NEXT Look 'Find numbers in the sixth column FOR Look = 5 TO 21 STEP 2 IF CELL8(9) = SCREEN(Look, 32) - 48 THEN GOTO StartGrid8 NEXT Look LOCATE 21, 31: PRINT CELL8(9) END IF '--------------------------- 'SUB Grid9 Restart = 0 Hit9 = Hit9 + 1 StartGrid9: Restart = Restart + 1 IF Restart = 21 THEN GOTO StartGrid1 COLOR 14, 0 LOCATE 3, 50: PRINT "Grid Nine hit"; Hit9; "Times." 'Blank out all the CELLs in case we're starting over COLOR 7, 7 LOCATE 17, 36: PRINT " ": LOCATE 17, 40: PRINT " ": LOCATE 17, 44: PRINT " " LOCATE 19, 36: PRINT " ": LOCATE 19, 40: PRINT " ": LOCATE 19, 44: PRINT " " LOCATE 21, 36: PRINT " ": LOCATE 21, 40: PRINT " ": LOCATE 21, 44: PRINT " " 'Put back the user input CALL ReloadData CALL ViewGrid9 'First CELL (Number 73) Attempt = 0 IF CELL9(1) = 32 THEN Number73: CELL9(1) = INT(RND * 9) + 1 'At the bottom of this routine we set "CELL73" to equal CELL9(1). 'If CELL 74 has been processed 21 times it will return here 'with CELL74Flag set to 1. ' 'If the number picked for CELL9(1) is the same as the last time, 'it means that CELL9(2) has no solution. To prevent the program from 'trying CELL 74 another 21 times, followed by processing CELL 73 'another 21 times, we just exit and go back to square 1. IF CELL74Flag = 1 AND CELL9(1) = CELL73 THEN CELL74Flag = 0: CELL73 = 0: GOTO StartGrid1 END IF Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid1 PickedNum(Attempt) = CELL9(1) FOR CHK = 1 TO Attempt IF CELL9(1) = PickedNum(CHK - 1) THEN GOTO Number73 NEXT CHK 'Check 3x3 grid. FOR Check = 2 TO 9 IF CELL9(1) = CELL9(Check) THEN GOTO Number73 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL9(1) = SCREEN(17, Look) - 48 THEN GOTO Number73 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL9(1) = SCREEN(Look, 36) - 48 THEN GOTO Number73 NEXT Look LOCATE 17, 35: PRINT CELL9(1) CELL73 = CELL9(1) END IF '--------------------------- 'Second CELL (Number 74) Attempt = 0: CELL74Flag = 0 IF CELL9(2) = 32 THEN Number74: CELL9(2) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN CELL74Flag = 1: GOTO StartGrid9 PickedNum(Attempt) = CELL9(2) FOR CHK = 1 TO Attempt IF CELL9(2) = PickedNum(CHK - 1) THEN GOTO Number74 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 2 THEN Check = 3 IF CELL9(2) = CELL9(Check) THEN GOTO Number74 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL9(2) = SCREEN(17, Look) - 48 THEN GOTO Number74 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL9(2) = SCREEN(Look, 40) - 48 THEN GOTO Number74 NEXT Look LOCATE 17, 39: PRINT CELL9(2) END IF '--------------------------- 'Third CELL (Number 75) Attempt = 0 IF CELL9(3) = 32 THEN Number75: CELL9(3) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(3) FOR CHK = 1 TO Attempt IF CELL9(3) = PickedNum(CHK - 1) THEN GOTO Number75 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 3 THEN Check = 4 IF CELL9(3) = CELL9(Check) THEN GOTO Number75 NEXT Check 'Find numbers in seventh row FOR Look = 12 TO 44 STEP 4 IF CELL9(3) = SCREEN(17, Look) - 48 THEN GOTO Number75 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL9(3) = SCREEN(Look, 44) - 48 THEN GOTO Number75 NEXT Look LOCATE 17, 43: PRINT CELL9(3) END IF '--------------------------- 'Fourth CELL (Number 76) Attempt = 0 IF CELL9(4) = 32 THEN Number76: CELL9(4) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(4) FOR CHK = 1 TO Attempt IF CELL9(4) = PickedNum(CHK - 1) THEN GOTO Number76 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 4 THEN Check = 5 IF CELL9(4) = CELL9(Check) THEN GOTO Number76 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL9(4) = SCREEN(19, Look) - 48 THEN GOTO Number76 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL9(4) = SCREEN(Look, 36) - 48 THEN GOTO Number76 NEXT Look LOCATE 19, 35: PRINT CELL9(4) END IF '--------------------------- 'Fifth CELL (Number 77) Attempt = 0 IF CELL9(5) = 32 THEN Number77: CELL9(5) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(5) FOR CHK = 1 TO Attempt IF CELL9(5) = PickedNum(CHK - 1) THEN GOTO Number77 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 5 THEN Check = 6 IF CELL9(5) = CELL9(Check) THEN GOTO Number77 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL9(5) = SCREEN(19, Look) - 48 THEN GOTO Number77 NEXT Look 'Find numbers in the eighth column FOR Look = 5 TO 21 STEP 2 IF CELL9(5) = SCREEN(Look, 40) - 48 THEN GOTO Number77 NEXT Look LOCATE 19, 39: PRINT CELL9(5) END IF '--------------------------- 'sixth CELL (Number 78) Attempt = 0 IF CELL9(6) = 32 THEN Number78: CELL9(6) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(6) FOR CHK = 1 TO Attempt IF CELL9(6) = PickedNum(CHK - 1) THEN GOTO Number78 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 6 THEN Check = 7 IF CELL9(6) = CELL9(Check) THEN GOTO Number78 NEXT Check 'Find numbers in the eighth row FOR Look = 12 TO 44 STEP 4 IF CELL9(6) = SCREEN(19, Look) - 48 THEN GOTO Number78 NEXT Look 'Find numbers in the ninth column FOR Look = 5 TO 21 STEP 2 IF CELL9(6) = SCREEN(Look, 44) - 48 THEN GOTO Number78 NEXT Look LOCATE 19, 43: PRINT CELL9(6) END IF '--------------------------- 'seventh CELL (Number 79) Attempt = 0 IF CELL9(7) = 32 THEN Number79: CELL9(7) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(7) FOR CHK = 1 TO Attempt IF CELL9(7) = PickedNum(CHK - 1) THEN GOTO Number79 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 7 THEN Check = 8 IF CELL9(7) = CELL9(Check) THEN GOTO Number79 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL9(7) = SCREEN(21, Look) - 48 THEN GOTO Number79 NEXT Look 'Find numbers in the seventh column FOR Look = 5 TO 21 STEP 2 IF CELL9(7) = SCREEN(Look, 36) - 48 THEN GOTO Number79 NEXT Look LOCATE 21, 35: PRINT CELL9(7) END IF '--------------------------- 'eighth CELL (Number 80) Attempt = 0 IF CELL9(8) = 32 THEN Number80: CELL9(8) = INT(RND * 9) + 1 Attempt = Attempt + 1 IF Attempt = 21 THEN GOTO StartGrid9 PickedNum(Attempt) = CELL9(8) FOR CHK = 1 TO Attempt IF CELL9(8) = PickedNum(CHK - 1) THEN GOTO Number80 NEXT CHK 'Check 3x3 grid. FOR Check = 1 TO 9 IF Check = 8 THEN Check = 9 IF CELL9(8) = CELL9(Check) THEN GOTO Number80 NEXT Check 'Find numbers in the ninth row FOR Look = 12 TO 44 STEP 4 IF CELL9(8) = SCREEN(21, Look) - 48 THEN GOTO Number80 NEXT Look 'Find numbers in the eigth column FOR Look = 5 TO 21 STEP 2 IF CELL9(8) = SCREEN(Look, 40) - 48 THEN GOTO Number80 NEXT Look LOCATE 21, 39: PRINT CELL9(8) END IF '--------------------------- 'ninth CELL (Number 81) 'Last number - there can be only one option. CELL9(9) = 45 - (CELL9(1) + CELL9(2) + CELL9(3) + CELL9(4) + CELL9(5) + CELL9(6) + CELL9(7) + CELL9(8)) LOCATE 21, 43: PRINT CELL9(9) END SUB SUB ConvertCoordinates 'This sub converts the number of the CELLs to the actual screen coordinates. IF X$(Count) = "1" THEN X(Count) = 11 IF X$(Count) = "2" THEN X(Count) = 15 IF X$(Count) = "3" THEN X(Count) = 19 IF X$(Count) = "4" THEN X(Count) = 23 IF X$(Count) = "5" THEN X(Count) = 27 IF X$(Count) = "6" THEN X(Count) = 31 IF X$(Count) = "7" THEN X(Count) = 35 IF X$(Count) = "8" THEN X(Count) = 39 IF X$(Count) = "9" THEN X(Count) = 43 IF Y$(Count) = "1" THEN Y(Count) = 5 IF Y$(Count) = "2" THEN Y(Count) = 7 IF Y$(Count) = "3" THEN Y(Count) = 9 IF Y$(Count) = "4" THEN Y(Count) = 11 IF Y$(Count) = "5" THEN Y(Count) = 13 IF Y$(Count) = "6" THEN Y(Count) = 15 IF Y$(Count) = "7" THEN Y(Count) = 17 IF Y$(Count) = "8" THEN Y(Count) = 19 IF Y$(Count) = "9" THEN Y(Count) = 21 END SUB SUB Drawboard 'LOCATE 24, 14: PRINT "Psuedo Sudoku Solver Ver. 7.8" COLOR 8, 7 LOCATE 4, 10: PRINT "ÚÄÄÄÂÄÄÄÂÄÄÄÒÄÄÄÂÄÄÄÂÄÄÄÒÄÄÄÂÄÄÄÂÄÄÄ¿" LOCATE 5, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 6, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 7, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 8, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 9, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 10, 10: PRINT "ÆÍÍÍØÍÍÍØÍÍÍÎÍÍÍØÍÍÍØÍÍÍÎÍÍÍØÍÍÍØÍÍ͵" LOCATE 11, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 12, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 13, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 14, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 15, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 16, 10: PRINT "ÆÍÍÍØÍÍÍØÍÍÍÎÍÍÍØÍÍÍØÍÍÍÎÍÍÍØÍÍÍØÍÍ͵" LOCATE 17, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 18, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 19, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 20, 10: PRINT "ÃÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ×ÄÄÄÅÄÄÄÅÄÄÄ´" LOCATE 21, 10: PRINT "³ ³ ³ º ³ ³ º ³ ³ ³" LOCATE 22, 10: PRINT "ÀÄÄÄÁÄÄÄÁÄÄÄÐÄÄÄÁÄÄÄÁÄÄÄÐÄÄÄÁÄÄÄÁÄÄÄÙ" COLOR 10, 0 LOCATE 2, 26: PRINT "ÄÄXÄÄ" LOCATE 2, 25: PRINT CHR$(27) LOCATE 2, 31: PRINT CHR$(26) LOCATE 12, 7: PRINT CHR$(24) LOCATE 13, 7: PRINT "Y" LOCATE 14, 7: PRINT CHR$(25) COLOR 14, 0 LOCATE 3, 10 PRINT " 1 2 3 4 5 6 7 8 9" LOCATE 5, 9: PRINT "A" LOCATE 7, 9: PRINT "B" LOCATE 9, 9: PRINT "C" LOCATE 11, 9: PRINT "D" LOCATE 13, 9: PRINT "E" LOCATE 15, 9: PRINT "F" LOCATE 17, 9: PRINT "G" LOCATE 19, 9: PRINT "H" LOCATE 21, 9: PRINT "I" END SUB REM $STATIC SUB EndGame IF STOP$ = CHR$(27) THEN CALL RunGame 'User pressed COLOR 15, 0 LOCATE 18, 50: PRINT " Done! " SOUND 1800, 2: SOUND 2000, 2: SOUND 2200, 2: SOUND 2400, 2: SOUND 2600, 6 'Clear keyboard buffer DO: LOOP WHILE INKEY$ <> "" ANOTHERGAME: LOCATE 20, 55: PRINT "Try again? (Y/N) " ASK$ = INKEY$ IF ASK$ = "y" OR ASK$ = "Y" THEN CLS NumberOfRetries = 0 CALL RunGame END IF IF ASK$ = "n" OR ASK$ = "N" THEN LOCATE 18, 60: PRINT " " LOCATE 20, 55: PRINT " " LOCATE 23, 12: PRINT "Press a key to close this window." SLEEP SYSTEM END IF GOTO ANOTHERGAME END SUB REM $DYNAMIC SUB EnterNumbers 'This sub has the user enter the numbers. 'The numbers and locations are saved in an array 'so they can be put back later during the program. DIM Row(100), Column(100) COLOR 0, 0 LOCATE 2, 50: PRINT " " LOCATE 3, 50: PRINT " " COLOR 15, 0 LOCATE 4, 51: PRINT "Enter X and Y coordinates." COLOR 10, 0 LOCATE 6, 50: PRINT "To erase a number, type the" LOCATE 7, 50: PRINT "coordinates and press " COLOR 15, 0 LOCATE 10, 50: PRINT "Enter X coordinate first." LOCATE 11, 50: PRINT "Example: 3-d, 6-h, 9-a, etc." LOCATE 22, 50: PRINT " Press to EXIT" Count = 1 UserData: COLOR 15, 1 LOCATE 13, 48: PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" LOCATE 14, 48: PRINT "³ ³" LOCATE 15, 48: PRINT "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" LOCATE 16, 48: PRINT "³ ³" LOCATE 17, 48: PRINT "³ ³" LOCATE 18, 48: PRINT "³ ³" LOCATE 19, 48: PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" LOCATE 14, 50: PRINT " Enter Coordinates" COLOR 14, 1 LOCATE 16, 50: PRINT "Enter X " LOCATE 16, 58: COLOR 30, 1: PRINT "_" COLOR 14, 1 LOCATE 18, 49: PRINT "... or press to begin" DO 'Wait for input X$(Count) = INKEY$ LOOP WHILE X$(Count) = "" IF X$(Count) = "z" THEN END IF X$(Count) = CHR$(27) THEN SYSTEM LOCATE 16, 58: PRINT X$(Count) IF X$(Count) = CHR$(13) THEN 'CHR$(13) is the key COLOR 0, 0 LOCATE 3, 10: PRINT " " LOCATE 2, 24: PRINT " " LOCATE 5, 9: PRINT " " LOCATE 7, 9: PRINT " " LOCATE 9, 9: PRINT " " LOCATE 11, 9: PRINT " " LOCATE 13, 9: PRINT " " LOCATE 15, 9: PRINT " " LOCATE 17, 9: PRINT " " LOCATE 19, 9: PRINT " " LOCATE 21, 9: PRINT " " LOCATE 12, 7: PRINT " " LOCATE 13, 7: PRINT " " LOCATE 14, 7: PRINT " " 'Blank out the right side of the board FOR YPOS = 4 TO 22 COLOR 0, 0 LOCATE YPOS, 48: PRINT SPACE$(32) NEXT YPOS EXIT SUB END IF 'The following is in case the user enters nothing or a . IF VAL(X$(Count)) = 0 THEN SOUND 1000, 1: GOTO UserData SOUND 1200, .5: SOUND 2000, .5 'Clear keyboard buffer DO: LOOP WHILE INKEY$ <> "" EnterY: LOCATE 18, 49: PRINT SPACE$(29) LOCATE 17, 50: PRINT "Enter Y " LOCATE 17, 58: COLOR 30, 1: PRINT "_" COLOR 14, 1 DO Y$(Count) = INKEY$ LOOP WHILE Y$(Count) = "" IF Y$(Count) = CHR$(27) THEN SYSTEM LOCATE 17, 58: PRINT Y$(Count) 'This added later when Y axis was changed to letters. 'It just converts the letters back to numbers. IF Y$(Count) = "A" OR Y$(Count) = "a" THEN Y$(Count) = "1" IF Y$(Count) = "B" OR Y$(Count) = "b" THEN Y$(Count) = "2" IF Y$(Count) = "C" OR Y$(Count) = "c" THEN Y$(Count) = "3" IF Y$(Count) = "D" OR Y$(Count) = "d" THEN Y$(Count) = "4" IF Y$(Count) = "E" OR Y$(Count) = "e" THEN Y$(Count) = "5" IF Y$(Count) = "F" OR Y$(Count) = "f" THEN Y$(Count) = "6" IF Y$(Count) = "G" OR Y$(Count) = "g" THEN Y$(Count) = "7" IF Y$(Count) = "H" OR Y$(Count) = "h" THEN Y$(Count) = "8" IF Y$(Count) = "I" OR Y$(Count) = "i" THEN Y$(Count) = "9" IF VAL(Y$(Count)) = 0 THEN SOUND 1000, 1: GOTO EnterY SOUND 1200, .5: SOUND 2000, .5 'Clear keyboard buffer DO: LOOP WHILE INKEY$ <> "" TheNumber: LOCATE 18, 50: PRINT "Enter digit" LOCATE 18, 62: COLOR 30, 1: PRINT "_" COLOR 14, 1 DO USRNBR$ = INKEY$ LOOP WHILE USRNBR$ = "" IF USRNBR$ = CHR$(27) THEN SYSTEM USRNBR(Count) = VAL(USRNBR$) IF USRNBR(Count) > 9 THEN SOUND 1000, 1: GOTO TheNumber SOUND 1000, 1: SOUND 1200, 1: SOUND 1800, 1 CALL ConvertCoordinates 'Check to see if a number is being changed. If so, set old coordinates to 0 'Then when the numbers are reprinted in the "ReloadData" sub, the zeroes will be ignored. IF Count > 1 THEN FOR Check = 1 TO Count - 1 IF X(Check) = X(Count) AND Y(Check) = Y(Count) THEN USRNBR(Check) = 0 SOUND 2000, 4 END IF NEXT Check END IF COLOR 0, 7: LOCATE Y(Count), X(Count): PRINT USRNBR(Count); ': COLOR 14, 0 'Blank out a mistake IF USRNBR(Count) = 0 THEN COLOR 0, 7 LOCATE Y(Count), X(Count) + 1: PRINT " " SOUND 1800, 1: SOUND 1200, 1: SOUND 1000, 1 GOTO UserData END IF 'Look for duplicates (looks only up, down, and across) 'NOTE: The SCREEN Function reads the ASCII value of any character found 'at the horizontal and vertical coordinates. E.G. SCREEN(5,14) 'Because of the order of the ASCII characters, you can subtract 48 'to obtain the actual digit. (Only works with numbers.) 'The ASCII code for "5" is 53. Just subtract 48 to get "5." 'Look across for a duplicate FOR Check = 12 TO 44 STEP 4 IF Check = X(Count) + 1 GOTO EndXcheck Row(Check) = SCREEN(Y(Count), Check) IF Row(Check) <> 32 THEN Row(Check) = Row(Check) - 48 IF Row(Check) = USRNBR(Count) THEN GOSUB ALARM EndXcheck: NEXT Check 'Look up and down for a duplicate FOR Check = 5 TO 21 STEP 2 IF Check = Y(Count) GOTO EndYcheck Column(Check) = SCREEN(Check, X(Count) + 1) IF Column(Check) <> 32 THEN Column(Check) = Column(Check) - 48 IF Column(Check) = USRNBR(Count) THEN GOSUB ALARM EndYcheck: NEXT Check Count = Count + 1 GOTO UserData ALARM: FOR snd = 600 TO 100 STEP -50 SOUND snd, .5 NEXT snd COLOR 28, 1 LOCATE 16, 60: PRINT "DUPLICATE" LOCATE 17, 60: PRINT " NUMBER!" COLOR 16, 15 LOCATE Y(Count), X(Count): PRINT USRNBR(Count) SLEEP 2 COLOR 12, 1 LOCATE 16, 60: PRINT "DUPLICATE" LOCATE 17, 60: PRINT " NUMBER!" COLOR 14, 1 GOTO TheNumber END SUB SUB ReloadData 'This takes the numbers entered by the user or by subroutine Board0 'and puts them back on the board. Numbers have been stored in the 'USRNBR() and COMPUTERNBR() arrays. COLOR 0, 7 FOR Load = 1 TO Count - 1 IF USRNBR(Load) = 0 THEN GOTO SkipThisNumber LOCATE Y(Load), X(Load): PRINT USRNBR(Load) SkipThisNumber: NEXT Load COLOR 1, 7 FOR Load2 = 1 TO Count2 LOCATE Y2(Load2), X2(Load2): PRINT COMPUTERNBR(Load2) NEXT Load2 END SUB SUB RunGame CALL Drawboard 'Draw the Sudoku board CALL EnterNumbers 'Enter the numbers from a puzzle in the newspaper or whatever. CALL Board0 ' Look for cells that only have one solution. Created 04/18/20 CALL Board1 ' Where most of the processing takes place. CALL EndGame END SUB SUB ViewGrid1 CELL1(1) = SCREEN(5, 12) CELL1(2) = SCREEN(5, 16) CELL1(3) = SCREEN(5, 20) CELL1(4) = SCREEN(7, 12) CELL1(5) = SCREEN(7, 16) CELL1(6) = SCREEN(7, 20) CELL1(7) = SCREEN(9, 12) CELL1(8) = SCREEN(9, 16) CELL1(9) = SCREEN(9, 20) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL1(convert) = CELL1(convert) - 48 IF CELL1(convert) < 0 THEN CELL1(convert) = 32 NEXT convert END SUB SUB ViewGrid2 CELL2(1) = SCREEN(5, 24) CELL2(2) = SCREEN(5, 28) CELL2(3) = SCREEN(5, 32) CELL2(4) = SCREEN(7, 24) CELL2(5) = SCREEN(7, 28) CELL2(6) = SCREEN(7, 32) CELL2(7) = SCREEN(9, 24) CELL2(8) = SCREEN(9, 28) CELL2(9) = SCREEN(9, 32) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL2(convert) = CELL2(convert) - 48 IF CELL2(convert) < 0 THEN CELL2(convert) = 32 NEXT convert END SUB SUB ViewGrid3 CELL3(1) = SCREEN(5, 36) CELL3(2) = SCREEN(5, 40) CELL3(3) = SCREEN(5, 44) CELL3(4) = SCREEN(7, 36) CELL3(5) = SCREEN(7, 40) CELL3(6) = SCREEN(7, 44) CELL3(7) = SCREEN(9, 36) CELL3(8) = SCREEN(9, 40) CELL3(9) = SCREEN(9, 44) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL3(convert) = CELL3(convert) - 48 IF CELL3(convert) < 0 THEN CELL3(convert) = 32 NEXT convert END SUB SUB ViewGrid4 CELL4(1) = SCREEN(11, 12) CELL4(2) = SCREEN(11, 16) CELL4(3) = SCREEN(11, 20) CELL4(4) = SCREEN(13, 12) CELL4(5) = SCREEN(13, 16) CELL4(6) = SCREEN(13, 20) CELL4(7) = SCREEN(15, 12) CELL4(8) = SCREEN(15, 16) CELL4(9) = SCREEN(15, 20) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL4(convert) = CELL4(convert) - 48 IF CELL4(convert) < 0 THEN CELL4(convert) = 32 NEXT convert END SUB SUB ViewGrid5 CELL5(1) = SCREEN(11, 24) CELL5(2) = SCREEN(11, 28) CELL5(3) = SCREEN(11, 32) CELL5(4) = SCREEN(13, 24) CELL5(5) = SCREEN(13, 28) CELL5(6) = SCREEN(13, 32) CELL5(7) = SCREEN(15, 24) CELL5(8) = SCREEN(15, 28) CELL5(9) = SCREEN(15, 32) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL5(convert) = CELL5(convert) - 48 IF CELL5(convert) < 0 THEN CELL5(convert) = 32 NEXT convert END SUB SUB ViewGrid6 CELL6(1) = SCREEN(11, 36) CELL6(2) = SCREEN(11, 40) CELL6(3) = SCREEN(11, 44) CELL6(4) = SCREEN(13, 36) CELL6(5) = SCREEN(13, 40) CELL6(6) = SCREEN(13, 44) CELL6(7) = SCREEN(15, 36) CELL6(8) = SCREEN(15, 40) CELL6(9) = SCREEN(15, 44) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL6(convert) = CELL6(convert) - 48 IF CELL6(convert) < 0 THEN CELL6(convert) = 32 NEXT convert END SUB SUB ViewGrid7 CELL7(1) = SCREEN(17, 12) CELL7(2) = SCREEN(17, 16) CELL7(3) = SCREEN(17, 20) CELL7(4) = SCREEN(19, 12) CELL7(5) = SCREEN(19, 16) CELL7(6) = SCREEN(19, 20) CELL7(7) = SCREEN(21, 12) CELL7(8) = SCREEN(21, 16) CELL7(9) = SCREEN(21, 20) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL7(convert) = CELL7(convert) - 48 IF CELL7(convert) < 0 THEN CELL7(convert) = 32 NEXT convert END SUB SUB ViewGrid8 CELL8(1) = SCREEN(17, 24) CELL8(2) = SCREEN(17, 28) CELL8(3) = SCREEN(17, 32) CELL8(4) = SCREEN(19, 24) CELL8(5) = SCREEN(19, 28) CELL8(6) = SCREEN(19, 32) CELL8(7) = SCREEN(21, 24) CELL8(8) = SCREEN(21, 28) CELL8(9) = SCREEN(21, 32) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL8(convert) = CELL8(convert) - 48 IF CELL8(convert) < 0 THEN CELL8(convert) = 32 NEXT convert END SUB SUB ViewGrid9 CELL9(1) = SCREEN(17, 36) CELL9(2) = SCREEN(17, 40) CELL9(3) = SCREEN(17, 44) CELL9(4) = SCREEN(19, 36) CELL9(5) = SCREEN(19, 40) CELL9(6) = SCREEN(19, 44) CELL9(7) = SCREEN(21, 36) CELL9(8) = SCREEN(21, 40) CELL9(9) = SCREEN(21, 44) 'Convert the screen codes to digits 1-9 FOR convert = 1 TO 9 CELL9(convert) = CELL9(convert) - 48 IF CELL9(convert) < 0 THEN CELL9(convert) = 32 NEXT convert END SUB