QB / QB64 Discussion Forum     RULES     Other Subforums, Links and Downloads    Index of Threads

 

 Return to Index  

SUDOGFX.BAS (graphics creation utility for Sudoku.BAS)

June 27 2008 at 5:44 AM
  (Login qb432l)
R


Response to Sudoku (program only)

 
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
'----------------------------------------------------------------------------
'------------- Utility to create graphics files for SuDoku.BAS --------------
'--------------- Copyright (C) 2005 by Bob Seguin (Freeware) ----------------
'----------------------------------------------------------------------------
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
DEFINT A-Z
DECLARE SUB Graphics ()
DECLARE SUB PutNUM (Row, Col, number, Style)
DECLARE SUB PrintSTRING (x, y, Prnt$)
DIM SHARED NumBOX(1 TO 7500)
DIM SHARED Box(1 TO 26000)
DIM SHARED FontBOX(4701)
DIM SHARED Puzzle(1 TO 9, 1 TO 9)

SCREEN 12
Graphics

CLS
OUT &H3C8, 7
OUT &H3C9, 63
OUT &H3C9, 32
OUT &H3C9, 0
LINE (5, 5)-(634, 474), 3, B
LINE (8, 8)-(631, 471), 3, B, &HCCCC
LINE (200, 180)-(439, 290), 3, B, &HCCCC
LINE (197, 177)-(442, 293), 3, B
PrintSTRING 246, 212, "The graphics files for SUDOKU"
PrintSTRING 243, 226, "have been successfully created."
PrintSTRING 246, 250, "You can now run the program."

a$ = INPUT$(1)

TitleDATA:
DATA 395,0,2,9,227,0,5,9,224,0,7,9,223,0,8,9,87,0,6,9,128,0
DATA 10,9,83,0,12,9,54,0,14,9,57,0,11,9,80,0,17,9,51,0,19,9
DATA 55,0,9,9,78,0,20,9,49,0,23,9,52,0,9,9,76,0,22,9,48,0
DATA 26,9,51,0,8,9,74,0,6,9,6,0,11,9,48,0,29,9,49,0,8,9
DATA 73,0,5,9,10,0,9,9,47,0,32,9,47,0,8,9,72,0,5,9,12,0
DATA 6,9,47,0,35,9,46,0,8,9,71,0,5,9,14,0,3,9,57,0,28,9
DATA 45,0,8,9,70,0,6,9,15,0,1,9,58,0,8,9,6,0,15,9,44,0,8,9
DATA 69,0,7,9,74,0,8,9,8,0,14,9,43,0,8,9,69,0,7,9,74,0,8,9
DATA 10,0,13,9,42,0,8,9,68,0,8,9,74,0,8,9,11,0,12,9,42,0
DATA 8,9,68,0,9,9,73,0,8,9,12,0,12,9,41,0,8,9,67,0,11,9
DATA 72,0,8,9,13,0,11,9,41,0,8,9,13,0,4,9,50,0,12,9,34,0
DATA 2,9,22,0,1,9,12,0,8,9,14,0,11,9,19,0,5,9,16,0,8,9,12,0
DATA 6,9,19,0,2,9,22,0,1,9,5,0,13,9,31,0,5,9,20,0,2,9,12,0
DATA 8,9,15,0,10,9,17,0,9,9,14,0,8,9,10,0,9,9,16,0,5,9,20,0
DATA 2,9,5,0,15,9,28,0,6,9,18,0,4,9,12,0,8,9,16,0,9,9,16,0
DATA 11,9,13,0,8,9,9,0,10,9,15,0,6,9,18,0,4,9,6,0,17,9,23,0
DATA 8,9,17,0,5,9,12,0,8,9,16,0,10,9,14,0,13,9,12,0,8,9
DATA 7,0,12,9,13,0,8,9,17,0,5,9,6,0,21,9,18,0,9,9,16,0,6,9
DATA 12,0,8,9,17,0,9,9,12,0,16,9,11,0,8,9,9,0,10,9,12,0
DATA 9,9,16,0,6,9,7,0,23,9,13,0,11,9,14,0,8,9,12,0,8,9,17,0
DATA 9,9,10,0,2,9,1,0,16,9,10,0,8,9,10,0,8,9,11,0,11,9,14,0
DATA 8,9,8,0,24,9,10,0,12,9,14,0,8,9,12,0,8,9,17,0,9,9,17,0
DATA 12,9,10,0,8,9,11,0,6,9,11,0,12,9,14,0,8,9,9,0,25,9
DATA 12,0,9,9,13,0,8,9,12,0,8,9,17,0,9,9,18,0,12,9,9,0,8,9
DATA 11,0,5,9,16,0,9,9,13,0,8,9,12,0,23,9,12,0,8,9,13,0
DATA 8,9,12,0,8,9,18,0,8,9,19,0,11,9,9,0,8,9,10,0,4,9,19,0
DATA 8,9,13,0,8,9,15,0,21,9,11,0,8,9,13,0,8,9,12,0,8,9,18,0
DATA 8,9,11,0,1,9,8,0,11,9,8,0,8,9,10,0,3,9,20,0,8,9,13,0
DATA 8,9,18,0,19,9,10,0,8,9,13,0,8,9,12,0,8,9,18,0,8,9,10,0
DATA 1,9,10,0,10,9,8,0,8,9,9,0,3,9,21,0,8,9,13,0,8,9,21,0
DATA 17,9,9,0,8,9,12,0,9,9,12,0,8,9,18,0,8,9,9,0,2,9,11,0
DATA 9,9,8,0,8,9,8,0,2,9,23,0,8,9,12,0,9,9,24,0,14,9,9,0
DATA 8,9,12,0,9,9,12,0,8,9,18,0,7,9,8,0,4,9,11,0,9,9,8,0
DATA 8,9,7,0,3,9,23,0,8,9,12,0,9,9,26,0,12,9,9,0,8,9,11,0
DATA 10,9,12,0,8,9,18,0,7,9,7,0,5,9,12,0,8,9,8,0,8,9,6,0
DATA 5,9,22,0,8,9,11,0,10,9,27,0,11,9,9,0,9,9,10,0,1,9,1,0
DATA 8,9,12,0,8,9,18,0,7,9,6,0,6,9,12,0,8,9,8,0,8,9,4,0
DATA 8,9,21,0,9,9,10,0,1,9,1,0,8,9,29,0,9,9,10,0,8,9,9,0
DATA 2,9,1,0,8,9,12,0,8,9,18,0,6,9,7,0,6,9,13,0,7,9,8,0
DATA 8,9,2,0,10,9,22,0,8,9,9,0,2,9,1,0,8,9,29,0,9,9,10,0
DATA 8,9,9,0,1,9,2,0,8,9,12,0,8,9,18,0,6,9,6,0,7,9,13,0
DATA 7,9,8,0,8,9,3,0,10,9,21,0,8,9,9,0,1,9,2,0,8,9,30,0
DATA 8,9,10,0,8,9,8,0,1,9,3,0,8,9,12,0,8,9,18,0,5,9,7,0
DATA 7,9,13,0,7,9,8,0,8,9,4,0,10,9,20,0,8,9,8,0,1,9,3,0
DATA 8,9,30,0,7,9,11,0,8,9,7,0,2,9,3,0,8,9,12,0,8,9,17,0
DATA 5,9,8,0,8,9,13,0,6,9,8,0,8,9,5,0,10,9,19,0,8,9,7,0
DATA 2,9,3,0,8,9,30,0,6,9,12,0,9,9,5,0,2,9,4,0,8,9,11,0
DATA 9,9,17,0,4,9,9,0,8,9,13,0,5,9,9,0,8,9,6,0,10,9,18,0
DATA 9,9,5,0,2,9,4,0,8,9,10,0,3,9,17,0,6,9,12,0,9,9,4,0
DATA 3,9,4,0,8,9,11,0,9,9,17,0,4,9,9,0,8,9,13,0,5,9,9,0
DATA 8,9,7,0,10,9,17,0,9,9,4,0,3,9,4,0,8,9,9,0,5,9,16,0
DATA 5,9,13,0,15,9,5,0,8,9,11,0,8,9,17,0,4,9,10,0,9,9,12,0
DATA 4,9,10,0,8,9,8,0,10,9,16,0,15,9,5,0,8,9,7,0,8,9,15,0
DATA 4,9,14,0,14,9,6,0,8,9,11,0,9,9,15,0,4,9,11,0,10,9,11,0
DATA 3,9,11,0,8,9,8,0,11,9,15,0,14,9,6,0,8,9,6,0,10,9,13,0
DATA 4,9,16,0,12,9,7,0,9,9,10,0,11,9,12,0,4,9,12,0,11,9
DATA 10,0,3,9,11,0,8,9,9,0,11,9,15,0,12,9,7,0,9,9,4,0,12,9
DATA 11,0,4,9,17,0,12,9,7,0,9,9,10,0,17,9,3,0,6,9,14,0,11,9
DATA 8,0,3,9,12,0,8,9,10,0,11,9,14,0,12,9,7,0,9,9,3,0,14,9
DATA 8,0,5,9,18,0,11,9,8,0,9,9,10,0,25,9,15,0,12,9,6,0,3,9
DATA 13,0,8,9,11,0,13,9,11,0,11,9,8,0,9,9,3,0,25,9,20,0
DATA 10,9,10,0,7,9,11,0,23,9,18,0,14,9,2,0,3,9,14,0,8,9
DATA 12,0,11,9,12,0,10,9,10,0,7,9,4,0,24,9,21,0,9,9,11,0
DATA 6,9,12,0,22,9,19,0,18,9,15,0,7,9,14,0,9,9,13,0,9,9
DATA 11,0,6,9,6,0,21,9,24,0,7,9,12,0,5,9,13,0,20,9,22,0
DATA 16,9,16,0,5,9,17,0,7,9,15,0,7,9,12,0,5,9,8,0,18,9,26,0
DATA 6,9,13,0,3,9,15,0,19,9,24,0,13,9,18,0,4,9,19,0,4,9
DATA 17,0,6,9,13,0,3,9,12,0,13,9,29,0,5,9,14,0,2,9,19,0
DATA 14,9,28,0,10,9,19,0,2,9,21,0,2,9,19,0,5,9,14,0,2,9
DATA 15,0,8,9,33,0,2,9,16,0,1,9,26,0,5,9,33,0,6,9,21,0,1,9
DATA 44,0,2,9,16,0,1,9,470,0

NumberDATA:
DATA 442,0,8,9,131,0,4,9,122,0,1,9,32,0,8,9,30,0,1,9,27,0
DATA 2,9,40,0,3,9,27,0,7,9,26,0,3,9,24,0,4,9,28,0,5,9,30,0
DATA 1,9,32,0,9,9,29,0,1,9,27,0,13,9,24,0,3,9,1,0,6,9,25,0
DATA 9,9,24,0,4,9,22,0,7,9,25,0,8,9,28,0,1,9,32,0,9,9,29,0
DATA 1,9,27,0,13,9,24,0,2,9,3,0,6,9,23,0,2,9,3,0,6,9,23,0
DATA 5,9,20,0,10,9,23,0,1,9,1,0,7,9,28,0,1,9,32,0,1,9,36,0
DATA 1,9,27,0,13,9,24,0,2,9,5,0,5,9,22,0,2,9,5,0,6,9,21,0
DATA 6,9,19,0,2,9,2,0,8,9,21,0,1,9,5,0,5,9,26,0,1,9,32,0
DATA 2,9,35,0,1,9,28,0,13,9,23,0,3,9,5,0,5,9,21,0,3,9,6,0
DATA 5,9,20,0,7,9,25,0,6,9,27,0,5,9,25,0,2,9,5,0,1,9,26,0
DATA 4,9,32,0,1,9,31,0,10,9,23,0,4,9,6,0,3,9,21,0,4,9,6,0
DATA 6,9,21,0,5,9,26,0,5,9,28,0,4,9,24,0,2,9,5,0,2,9,25,0
DATA 6,9,30,0,1,9,39,0,3,9,23,0,5,9,5,0,2,9,22,0,4,9,7,0
DATA 5,9,21,0,5,9,27,0,4,9,28,0,3,9,25,0,2,9,3,0,4,9,25,0
DATA 7,9,28,0,2,9,39,0,2,9,24,0,6,9,3,0,2,9,23,0,5,9,6,0
DATA 5,9,21,0,5,9,27,0,4,9,28,0,2,9,25,0,2,9,3,0,5,9,24,0
DATA 9,9,26,0,2,9,6,0,2,9,31,0,2,9,25,0,8,9,1,0,1,9,24,0
DATA 5,9,6,0,5,9,21,0,5,9,27,0,4,9,27,0,2,9,25,0,3,9,4,0
DATA 4,9,26,0,8,9,25,0,2,9,5,0,5,9,29,0,2,9,26,0,9,9,24,0
DATA 6,9,5,0,5,9,21,0,5,9,27,0,3,9,26,0,5,9,24,0,3,9,4,0
DATA 4,9,28,0,7,9,23,0,3,9,3,0,8,9,27,0,2,9,28,0,10,9,23,0
DATA 6,9,4,0,5,9,21,0,5,9,27,0,3,9,24,0,8,9,22,0,4,9,4,0
DATA 4,9,29,0,6,9,23,0,3,9,4,0,7,9,27,0,2,9,30,0,9,9,22,0
DATA 7,9,3,0,4,9,22,0,5,9,27,0,2,9,28,0,6,9,21,0,5,9,3,0
DATA 4,9,2,0,2,9,26,0,5,9,22,0,4,9,6,0,5,9,26,0,2,9,31,0
DATA 10,9,22,0,5,9,4,0,4,9,22,0,5,9,26,0,2,9,30,0,5,9,20,0
DATA 17,9,26,0,5,9,22,0,4,9,6,0,5,9,26,0,2,9,30,0,2,9,3,0
DATA 6,9,24,0,2,9,4,0,4,9,23,0,5,9,26,0,1,9,32,0,5,9,19,0
DATA 16,9,28,0,4,9,22,0,4,9,7,0,4,9,25,0,3,9,28,0,3,9,5,0
DATA 5,9,30,0,3,9,24,0,5,9,25,0,1,9,34,0,4,9,19,0,15,9,29,0
DATA 3,9,23,0,5,9,6,0,4,9,25,0,2,9,28,0,4,9,6,0,4,9,29,0
DATA 3,9,25,0,5,9,24,0,2,9,34,0,4,9,20,0,12,9,31,0,3,9,23,0
DATA 5,9,6,0,3,9,25,0,3,9,28,0,4,9,6,0,3,9,30,0,2,9,26,0
DATA 5,9,23,0,2,9,35,0,4,9,28,0,4,9,30,0,3,9,24,0,6,9,5,0
DATA 3,9,25,0,3,9,27,0,5,9,6,0,2,9,30,0,2,9,27,0,5,9,22,0
DATA 11,9,27,0,4,9,28,0,4,9,30,0,2,9,26,0,6,9,4,0,2,9,25,0
DATA 4,9,27,0,5,9,5,0,2,9,30,0,2,9,28,0,5,9,21,0,12,9,27,0
DATA 3,9,29,0,4,9,29,0,2,9,27,0,7,9,2,0,2,9,26,0,4,9,27,0
DATA 7,9,2,0,2,9,30,0,2,9,29,0,4,9,21,0,12,9,27,0,3,9,30,0
DATA 4,9,28,0,2,9,29,0,9,9,26,0,4,9,28,0,10,9,30,0,2,9,30,0
DATA 3,9,21,0,12,9,27,0,3,9,31,0,3,9,27,0,2,9,32,0,7,9,27,0
DATA 2,9,31,0,7,9,31,0,2,9,31,0,1,9,33,0,1,9,26,0,3,9,33,0
DATA 1,9,27,0,2,9,35,0,4,9,28,0,2,9,33,0,4,9,32,0,1,9,92,0
DATA 2,9,2332,0,1,7,11,0,1,7,2,0,1,7,9,0,1,7,2,0,1,7,9,0
DATA 1,7,10,0,2,7,10,0,1,7,10,0,1,7,12,0,1,7,10,0,1,7,74,0
DATA 1,7,9,0,3,7,10,0,1,7,10,0,3,7,9,0,3,7,11,0,1,7,8,0
DATA 5,7,8,0,3,7,8,0,5,7,8,0,3,7,19,0,1,7,11,0,1,7,2,0,1,7
DATA 9,0,1,7,2,0,1,7,8,0,3,7,8,0,1,7,2,0,1,7,2,0,1,7,5,0
DATA 1,7,1,0,1,7,9,0,1,7,11,0,1,7,12,0,1,7,10,0,1,7,1,0
DATA 1,7,60,0,1,7,8,0,1,7,3,0,1,7,7,0,3,7,9,0,1,7,3,0,1,7
DATA 7,0,1,7,3,0,1,7,9,0,2,7,8,0,1,7,11,0,1,7,3,0,1,7,11,0
DATA 1,7,7,0,1,7,3,0,1,7,18,0,1,7,11,0,1,7,2,0,1,7,8,0,6,7
DATA 6,0,1,7,1,0,1,7,1,0,1,7,8,0,2,7,2,0,1,7,6,0,1,7,1,0
DATA 1,7,9,0,1,7,11,0,1,7,12,0,1,7,11,0,1,7,61,0,1,7,8,0
DATA 1,7,3,0,1,7,9,0,1,7,13,0,1,7,11,0,1,7,9,0,2,7,8,0,1,7
DATA 11,0,1,7,14,0,1,7,8,0,1,7,3,0,1,7,18,0,1,7,24,0,1,7
DATA 2,0,1,7,7,0,1,7,1,0,1,7,13,0,1,7,8,0,1,7,22,0,1,7,12,0
DATA 1,7,10,0,1,7,1,0,1,7,11,0,1,7,47,0,1,7,9,0,1,7,3,0
DATA 1,7,9,0,1,7,13,0,1,7,11,0,1,7,8,0,1,7,1,0,1,7,8,0,4,7
DATA 8,0,1,7,14,0,1,7,8,0,1,7,3,0,1,7,18,0,1,7,24,0,1,7
DATA 2,0,1,7,8,0,2,7,12,0,1,7,9,0,1,7,22,0,1,7,12,0,1,7
DATA 24,0,1,7,47,0,1,7,9,0,1,7,3,0,1,7,9,0,1,7,12,0,1,7
DATA 10,0,2,7,9,0,1,7,1,0,1,7,8,0,1,7,3,0,1,7,7,0,4,7,10,0
DATA 1,7,10,0,3,7,19,0,1,7,24,0,1,7,2,0,1,7,9,0,2,7,10,0
DATA 1,7,9,0,1,7,1,0,1,7,1,0,1,7,19,0,1,7,12,0,1,7,22,0
DATA 5,7,19,0,2,7,23,0,1,7,10,0,1,7,3,0,1,7,9,0,1,7,11,0
DATA 1,7,13,0,1,7,7,0,1,7,2,0,1,7,12,0,1,7,7,0,1,7,3,0,1,7
DATA 9,0,1,7,9,0,1,7,3,0,1,7,18,0,1,7,23,0,6,7,8,0,1,7,1,0
DATA 1,7,8,0,1,7,2,0,2,7,6,0,1,7,2,0,1,7,20,0,1,7,12,0,1,7
DATA 24,0,1,7,46,0,1,7,10,0,1,7,3,0,1,7,9,0,1,7,10,0,1,7
DATA 14,0,1,7,7,0,5,7,11,0,1,7,7,0,1,7,3,0,1,7,8,0,1,7,10,0
DATA 1,7,3,0,1,7,43,0,1,7,2,0,1,7,7,0,1,7,1,0,1,7,1,0,1,7
DATA 7,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7,2,0,1,7,20,0,1,7,12,0
DATA 1,7,24,0,1,7,45,0,1,7,11,0,1,7,3,0,1,7,9,0,1,7,9,0
DATA 1,7,11,0,1,7,3,0,1,7,10,0,1,7,8,0,1,7,3,0,1,7,7,0,1,7
DATA 3,0,1,7,8,0,1,7,10,0,1,7,3,0,1,7,18,0,1,7,24,0,1,7
DATA 2,0,1,7,8,0,3,7,12,0,2,7,7,0,2,7,1,0,1,7,19,0,1,7,12,0
DATA 1,7,35,0,1,7,22,0,1,7,11,0,1,7,12,0,3,7,10,0,1,7,9,0
DATA 5,7,8,0,3,7,11,0,1,7,9,0,3,7,9,0,3,7,9,0,1,7,11,0,3,7
DATA 57,0,1,7,45,0,1,7,12,0,1,7,34,0,1,7,251,0,1,7,10,0
DATA 1,7,1399,0,3,7,69,0,3,7,11,0,4,7,8,0,1,7,8,0,4,7,9,0
DATA 4,7,7,0,4,7,8,0,5,7,7,0,5,7,8,0,4,7,7,0,1,7,4,0,1,7
DATA 6,0,1,7,14,0,1,7,8,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,5,0
DATA 1,7,5,0,1,7,4,0,1,7,7,0,4,7,7,0,5,7,18,0,1,7,3,0,1,7
DATA 67,0,1,7,3,0,1,7,8,0,2,7,4,0,2,7,6,0,1,7,8,0,1,7,3,0
DATA 1,7,7,0,1,7,4,0,1,7,6,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7
DATA 11,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7,14,0,1,7,8,0
DATA 1,7,2,0,1,7,8,0,1,7,11,0,1,7,5,0,1,7,5,0,2,7,3,0,1,7
DATA 6,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,17,0,1,7,3,0,1,7,34,0
DATA 1,7,20,0,1,7,15,0,1,7,8,0,1,7,6,0,1,7,5,0,1,7,1,0,1,7
DATA 7,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,4,0,1,7,6,0,1,7,11,0
DATA 1,7,11,0,1,7,11,0,1,7,4,0,1,7,6,0,1,7,14,0,1,7,8,0
DATA 1,7,1,0,1,7,9,0,1,7,11,0,2,7,3,0,2,7,5,0,2,7,3,0,1,7
DATA 6,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,17,0,1,7,3,0,1,7,7,0
DATA 1,7,12,0,1,7,12,0,1,7,22,0,1,7,14,0,1,7,7,0,1,7,3,0
DATA 3,7,2,0,1,7,4,0,1,7,1,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7
DATA 11,0,1,7,4,0,1,7,6,0,1,7,11,0,1,7,11,0,1,7,11,0,1,7
DATA 4,0,1,7,6,0,1,7,14,0,1,7,8,0,2,7,10,0,1,7,11,0,2,7
DATA 3,0,2,7,5,0,1,7,1,0,1,7,2,0,1,7,6,0,1,7,4,0,1,7,6,0
DATA 1,7,4,0,1,7,18,0,4,7,32,0,1,7,10,0,5,7,9,0,1,7,12,0
DATA 1,7,8,0,1,7,2,0,1,7,2,0,1,7,2,0,1,7,3,0,1,7,3,0,1,7
DATA 6,0,4,7,8,0,1,7,11,0,1,7,4,0,1,7,6,0,4,7,8,0,4,7,8,0
DATA 1,7,2,0,3,7,6,0,6,7,6,0,1,7,14,0,1,7,8,0,2,7,10,0,1,7
DATA 11,0,1,7,1,0,1,7,1,0,1,7,1,0,1,7,5,0,1,7,1,0,1,7,2,0
DATA 1,7,6,0,1,7,4,0,1,7,6,0,5,7,22,0,1,7,31,0,1,7,26,0
DATA 1,7,10,0,1,7,9,0,1,7,2,0,1,7,2,0,1,7,2,0,1,7,3,0,1,7
DATA 3,0,1,7,6,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,4,0,1,7,6,0
DATA 1,7,11,0,1,7,11,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7
DATA 14,0,1,7,8,0,1,7,1,0,1,7,9,0,1,7,11,0,1,7,1,0,1,7,1,0
DATA 1,7,1,0,1,7,5,0,1,7,2,0,1,7,1,0,1,7,6,0,1,7,4,0,1,7
DATA 6,0,1,7,26,0,1,7,32,0,1,7,10,0,5,7,9,0,1,7,11,0,1,7
DATA 9,0,1,7,3,0,2,7,1,0,3,7,3,0,5,7,6,0,1,7,3,0,1,7,7,0
DATA 1,7,11,0,1,7,4,0,1,7,6,0,1,7,11,0,1,7,11,0,1,7,4,0
DATA 1,7,6,0,1,7,4,0,1,7,6,0,1,7,11,0,1,7,2,0,1,7,8,0,1,7
DATA 2,0,1,7,8,0,1,7,11,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7,3,0
DATA 2,7,6,0,1,7,4,0,1,7,6,0,1,7,22,0,1,7,3,0,1,7,33,0,1,7
DATA 22,0,1,7,23,0,1,7,10,0,1,7,5,0,1,7,5,0,1,7,3,0,1,7
DATA 7,0,1,7,4,0,1,7,6,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,11,0
DATA 1,7,3,0,2,7,6,0,1,7,4,0,1,7,6,0,1,7,11,0,1,7,2,0,1,7
DATA 8,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,2,0,1,7,2,0,1,7,5,0
DATA 1,7,3,0,2,7,6,0,1,7,4,0,1,7,6,0,1,7,23,0,3,7,8,0,1,7
DATA 12,0,1,7,13,0,1,7,20,0,1,7,13,0,1,7,10,0,2,7,9,0,1,7
DATA 5,0,1,7,5,0,4,7,9,0,4,7,7,0,4,7,8,0,5,7,7,0,1,7,12,0
DATA 3,7,1,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7,12,0,2,7,9,0,1,7
DATA 4,0,1,7,6,0,5,7,7,0,1,7,5,0,1,7,5,0,1,7,4,0,1,7,7,0
DATA 4,7,7,0,1,7,46,0,1,7,62,0,5,7,1561,0,1,7,141,0,4,7
DATA 7,0,5,7,8,0,3,7,8,0,5,7,7,0,1,7,4,0,1,7,6,0,1,7,5,0
DATA 1,7,5,0,1,7,9,0,1,7,1,0,1,7,5,0,1,7,5,0,1,7,5,0,1,7
DATA 5,0,7,7,5,0,2,7,10,0,1,7,11,0,2,7,11,0,1,7,1,0,1,7
DATA 20,0,1,7,23,0,1,7,27,0,1,7,20,0,1,7,22,0,1,7,22,0,1,7
DATA 4,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7,3,0,1,7,9,0,1,7,9,0
DATA 1,7,4,0,1,7,6,0,1,7,5,0,1,7,5,0,1,7,9,0,1,7,1,0,1,7
DATA 5,0,1,7,5,0,1,7,5,0,1,7,11,0,1,7,5,0,1,7,11,0,1,7,12,0
DATA 1,7,10,0,1,7,3,0,1,7,20,0,1,7,22,0,1,7,27,0,1,7,19,0
DATA 1,7,23,0,1,7,22,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7
DATA 13,0,1,7,9,0,1,7,4,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0
DATA 1,7,3,0,1,7,3,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,11,0,1,7
DATA 6,0,1,7,11,0,1,7,12,0,1,7,58,0,1,7,27,0,1,7,19,0,1,7
DATA 23,0,1,7,22,0,1,7,4,0,1,7,6,0,1,7,4,0,1,7,6,0,1,7,13,0
DATA 1,7,9,0,1,7,4,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7
DATA 3,0,1,7,4,0,1,7,1,0,1,7,9,0,1,7,1,0,1,7,11,0,1,7,7,0
DATA 1,7,12,0,1,7,11,0,1,7,47,0,3,7,8,0,4,7,9,0,3,7,9,0
DATA 4,7,8,0,3,7,8,0,2,7,11,0,4,7,7,0,1,7,1,0,2,7,19,0,1,7
DATA 4,0,1,7,6,0,5,7,8,0,3,7,10,0,1,7,9,0,1,7,4,0,1,7,7,0
DATA 1,7,3,0,1,7,7,0,1,7,3,0,1,7,3,0,1,7,5,0,1,7,11,0,1,7
DATA 11,0,1,7,8,0,1,7,12,0,1,7,11,0,1,7,50,0,1,7,7,0,1,7
DATA 3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0
DATA 1,7,7,0,1,7,11,0,1,7,3,0,1,7,7,0,2,7,2,0,1,7,18,0,1,7
DATA 4,0,1,7,6,0,1,7,4,0,1,7,10,0,1,7,9,0,1,7,9,0,1,7,4,0
DATA 1,7,8,0,1,7,1,0,1,7,9,0,1,7,1,0,1,7,1,0,1,7,1,0,1,7
DATA 5,0,1,7,1,0,1,7,10,0,1,7,10,0,1,7,9,0,1,7,13,0,1,7
DATA 10,0,1,7,47,0,4,7,7,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7
DATA 3,0,1,7,7,0,5,7,7,0,1,7,11,0,1,7,3,0,1,7,7,0,1,7,3,0
DATA 1,7,18,0,1,7,2,0,1,7,1,0,1,7,6,0,1,7,4,0,1,7,10,0,1,7
DATA 9,0,1,7,9,0,1,7,4,0,1,7,8,0,1,7,1,0,1,7,9,0,1,7,1,0
DATA 1,7,1,0,1,7,1,0,1,7,4,0,1,7,3,0,1,7,9,0,1,7,9,0,1,7
DATA 10,0,1,7,13,0,1,7,10,0,1,7,46,0,1,7,3,0,1,7,7,0,1,7
DATA 3,0,1,7,7,0,1,7,11,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,11,0
DATA 1,7,3,0,1,7,7,0,1,7,3,0,1,7,18,0,1,7,3,0,2,7,6,0,1,7
DATA 4,0,1,7,6,0,1,7,3,0,1,7,9,0,1,7,9,0,1,7,4,0,1,7,9,0
DATA 1,7,11,0,1,7,3,0,1,7,4,0,1,7,5,0,1,7,8,0,1,7,8,0,1,7
DATA 11,0,1,7,14,0,1,7,9,0,1,7,46,0,1,7,3,0,1,7,7,0,1,7
DATA 3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0
DATA 1,7,7,0,1,7,11,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,19,0,4,7
DATA 7,0,1,7,4,0,1,7,7,0,3,7,10,0,1,7,10,0,4,7,10,0,1,7
DATA 11,0,1,7,3,0,1,7,4,0,1,7,5,0,1,7,8,0,1,7,8,0,7,7,5,0
DATA 1,7,14,0,1,7,9,0,1,7,47,0,4,7,7,0,4,7,9,0,3,7,9,0,4,7
DATA 8,0,3,7,8,0,1,7,12,0,4,7,7,0,1,7,3,0,1,7,23,0,1,7,114,0
DATA 1,7,24,0,1,7,122,0,1,7,150,0,2,7,22,0,2,7,22,0,6,7
DATA 90,0,4,7,1146,0,1,7,21,0,1,7,58,0,1,7,11,0,1,7,11,0
DATA 1,7,11,0,1,7,180,0,1,7,10,0,1,7,12,0,1,7,81,0,1,7,11,0
DATA 1,7,95,0,1,7,84,0,1,7,10,0,1,7,12,0,1,7,11,0,2,7,2,0
DATA 1,7,65,0,1,7,11,0,1,7,95,0,1,7,84,0,1,7,10,0,1,7,12,0
DATA 1,7,10,0,1,7,2,0,2,7,42,0,1,7,11,0,1,7,11,0,1,7,2,0
DATA 1,7,8,0,1,7,11,0,3,7,1,0,2,7,6,0,1,7,1,0,2,7,9,0,3,7
DATA 8,0,4,7,9,0,4,7,7,0,2,7,11,0,2,7,9,0,2,7,10,0,1,7,3,0
DATA 1,7,7,0,1,7,3,0,1,7,7,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7
DATA 2,0,1,7,9,0,1,7,2,0,1,7,7,0,4,7,9,0,1,7,10,0,1,7,12,0
DATA 1,7,57,0,1,7,11,0,1,7,11,0,1,7,1,0,1,7,9,0,1,7,11,0
DATA 1,7,2,0,1,7,2,0,1,7,5,0,2,7,2,0,1,7,7,0,1,7,3,0,1,7
DATA 7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,11,0,1,7,2,0
DATA 1,7,8,0,1,7,11,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7
DATA 2,0,1,7,2,0,1,7,5,0,1,7,2,0,1,7,9,0,1,7,2,0,1,7,10,0
DATA 1,7,8,0,1,7,11,0,1,7,13,0,1,7,56,0,1,7,11,0,1,7,11,0
DATA 2,7,10,0,1,7,11,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7,3,0,1,7
DATA 7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0
DATA 1,7,12,0,1,7,10,0,1,7,11,0,1,7,3,0,1,7,8,0,1,7,1,0
DATA 1,7,8,0,1,7,1,0,1,7,1,0,1,7,1,0,1,7,6,0,2,7,10,0,1,7
DATA 2,0,1,7,9,0,1,7,10,0,1,7,10,0,1,7,12,0,1,7,57,0,1,7
DATA 11,0,1,7,11,0,1,7,1,0,1,7,9,0,1,7,11,0,1,7,2,0,1,7
DATA 2,0,1,7,5,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0
DATA 1,7,7,0,1,7,3,0,1,7,7,0,1,7,13,0,1,7,9,0,1,7,11,0,1,7
DATA 3,0,1,7,8,0,1,7,1,0,1,7,8,0,1,7,1,0,1,7,1,0,1,7,1,0
DATA 1,7,6,0,2,7,10,0,1,7,2,0,1,7,8,0,1,7,11,0,1,7,10,0
DATA 1,7,12,0,1,7,57,0,1,7,11,0,1,7,11,0,1,7,2,0,1,7,8,0
DATA 1,7,11,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7,3,0,1,7,7,0,1,7
DATA 3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,3,0,1,7,7,0,1,7,11,0
DATA 1,7,2,0,1,7,8,0,1,7,11,0,1,7,2,0,2,7,9,0,1,7,10,0,1,7
DATA 3,0,1,7,6,0,1,7,2,0,1,7,10,0,2,7,8,0,1,7,12,0,1,7,10,0
DATA 1,7,12,0,1,7,57,0,1,7,11,0,1,7,11,0,1,7,3,0,1,7,7,0
DATA 1,7,11,0,1,7,2,0,1,7,2,0,1,7,5,0,1,7,3,0,1,7,8,0,3,7
DATA 8,0,4,7,9,0,4,7,7,0,1,7,12,0,2,7,10,0,1,7,11,0,2,7
DATA 1,0,1,7,9,0,1,7,10,0,1,7,3,0,1,7,6,0,1,7,2,0,1,7,10,0
DATA 1,7,9,0,4,7,9,0,1,7,10,0,1,7,12,0,1,7,69,0,1,7,71,0
DATA 1,7,15,0,1,7,93,0,1,7,23,0,1,7,9,0,1,7,11,0,1,7,70,0
DATA 1,7,71,0,1,7,15,0,1,7,91,0,2,7,690,0

GLDATA:
DATA 91,0,3,9,24,0,1,9,10,0,2,9,24,0,1,9,7,0,1,9,7,0,5,9
DATA 24,0,2,9,9,0,1,9,24,0,2,9,6,0,2,9,5,0,3,9,28,0,1,9
DATA 9,0,2,9,24,0,1,9,7,0,1,9,5,0,2,9,29,0,2,9,9,0,2,9,23,0
DATA 2,9,6,0,2,9,4,0,2,9,30,0,1,9,10,0,1,9,24,0,2,9,6,0
DATA 1,9,4,0,2,9,12,0,3,9,4,0,3,9,7,0,3,9,9,0,2,9,8,0,1,9
DATA 3,0,1,9,5,0,2,9,4,0,1,9,3,0,2,9,2,0,1,9,4,0,1,9,6,0
DATA 4,9,2,0,2,9,2,0,1,9,2,0,2,9,2,0,1,9,4,0,2,9,1,0,2,9
DATA 9,0,1,9,8,0,2,9,2,0,2,9,3,0,2,9,1,0,1,9,3,0,2,9,1,0
DATA 4,9,1,0,2,9,3,0,1,9,3,0,8,9,1,0,1,9,4,0,1,9,1,0,1,9
DATA 4,0,1,9,3,0,1,9,2,0,2,9,9,0,2,9,8,0,1,9,2,0,2,9,3,0
DATA 1,9,2,0,2,9,3,0,5,9,3,0,1,9,4,0,1,9,9,0,4,9,4,0,3,9
DATA 4,0,1,9,2,0,1,9,3,0,2,9,9,0,2,9,7,0,2,9,2,0,2,9,2,0
DATA 1,9,3,0,1,9,3,0,4,9,5,0,1,9,3,0,1,9,9,0,2,9,1,0,1,9
DATA 5,0,2,9,5,0,1,9,1,0,1,9,3,0,2,9,10,0,1,9,8,0,2,9,1,0
DATA 2,9,2,0,2,9,7,0,2,9,6,0,2,9,3,0,1,9,8,0,4,9,5,0,2,9
DATA 5,0,1,9,1,0,2,9,3,0,2,9,9,0,2,9,8,0,1,9,1,0,3,9,2,0
DATA 1,9,7,0,4,9,5,0,1,9,4,0,1,9,7,0,3,9,1,0,1,9,4,0,3,9
DATA 4,0,2,9,1,0,1,9,3,0,2,9,10,0,1,9,8,0,6,9,1,0,1,9,8,0
DATA 1,9,2,0,1,9,10,0,1,9,6,0,4,9,1,0,1,9,3,0,2,9,1,0,1,9
DATA 3,0,2,9,1,0,1,9,3,0,3,9,9,0,2,9,8,0,3,9,1,0,1,9,2,0
DATA 1,9,7,0,2,9,2,0,1,9,11,0,1,9,4,0,4,9,2,0,1,9,2,0,2,9
DATA 2,0,1,9,2,0,2,9,2,0,1,9,2,0,4,9,9,0,2,9,7,0,3,9,1,0
DATA 2,9,2,0,1,9,2,0,3,9,1,0,2,9,3,0,2,9,3,0,2,9,6,0,5,9
DATA 1,0,2,9,3,0,3,9,4,0,3,9,3,0,3,9,1,0,2,9,9,0,8,9,2,0
DATA 2,9,2,0,1,9,4,0,3,9,3,0,2,9,4,0,1,9,3,0,1,9,13,0,1,9
DATA 63,0,2,9,15,0,2,9,64,0,2,9,14,0,1,9,80,0,2,9,81,0,1,9
DATA 74,0

Japanese:
DATA 120,0,4,1,17,0,1,1,35,0,1,1,50,0,8,1,13,0,5,1,30,0
DATA 5,1,13,0,8,1,17,0,3,1,6,0,7,1,3,0,2,1,8,0,9,1,27,0
DATA 7,1,11,0,9,1,17,0,4,1,4,0,6,1,4,0,4,1,6,0,9,1,26,0
DATA 10,1,9,0,8,1,19,0,4,1,3,0,6,1,4,0,6,1,4,0,7,1,20,0
DATA 1,1,6,0,11,1,9,0,7,1,20,0,5,1,2,0,6,1,3,0,7,1,4,0,6,1
DATA 21,0,3,1,4,0,8,1,12,0,7,1,20,0,6,1,1,0,6,1,3,0,4,1
DATA 7,0,6,1,22,0,3,1,2,0,8,1,13,0,7,1,21,0,5,1,1,0,6,1
DATA 2,0,4,1,7,0,7,1,23,0,3,1,1,0,7,1,14,0,7,1,21,0,5,1
DATA 1,0,6,1,2,0,3,1,8,0,6,1,25,0,8,1,6,0,1,1,9,0,7,1,5,0
DATA 2,1,14,0,5,1,1,0,6,1,1,0,3,1,2,0,2,1,5,0,6,1,26,0,6,1
DATA 7,0,4,1,6,0,7,1,4,0,4,1,14,0,3,1,2,0,6,1,1,0,1,1,3,0
DATA 4,1,4,0,5,1,8,0,2,1,17,0,5,1,8,0,6,1,4,0,7,1,3,0,7,1
DATA 17,0,6,1,4,0,7,1,2,0,5,1,7,0,4,1,15,0,6,1,8,0,28,1
DATA 6,0,27,1,1,0,5,1,8,0,6,1,13,0,6,1,8,0,7,1,3,0,7,1,4,0
DATA 8,1,13,0,8,1,12,0,20,1,11,0,8,1,7,0,7,1,3,0,7,1,4,0
DATA 8,1,12,0,10,1,11,0,20,1,10,0,3,1,2,0,4,1,7,0,7,1,3,0
DATA 7,1,4,0,6,1,14,0,14,1,7,0,4,1,6,0,7,1,12,0,3,1,3,0
DATA 5,1,6,0,7,1,3,0,7,1,4,0,6,1,13,0,10,1,1,0,6,1,4,0,4,1
DATA 7,0,7,1,11,0,3,1,4,0,5,1,6,0,7,1,3,0,7,1,4,0,6,1,12,0
DATA 11,1,2,0,6,1,3,0,4,1,7,0,7,1,11,0,1,1,7,0,5,1,5,0,7,1
DATA 3,0,7,1,4,0,6,1,12,0,11,1,3,0,6,1,2,0,3,1,8,0,7,1,19,0
DATA 5,1,5,0,7,1,3,0,7,1,4,0,6,1,11,0,12,1,3,0,6,1,1,0,4,1
DATA 8,0,6,1,20,0,5,1,5,0,7,1,3,0,7,1,4,0,6,1,10,0,5,1,2,0
DATA 6,1,4,0,5,1,1,0,4,1,8,0,6,1,19,0,7,1,4,0,7,1,3,0,7,1
DATA 4,0,6,1,9,0,5,1,3,0,6,1,4,0,4,1,2,0,2,1,1,0,1,1,7,0
DATA 7,1,19,0,7,1,4,0,7,1,3,0,7,1,4,0,6,1,9,0,4,1,4,0,6,1
DATA 5,0,3,1,1,0,2,1,2,0,2,1,6,0,7,1,18,0,8,1,4,0,7,1,3,0
DATA 7,1,4,0,6,1,8,0,3,1,6,0,6,1,9,0,2,1,2,0,2,1,6,0,7,1
DATA 18,0,8,1,4,0,7,1,3,0,7,1,4,0,6,1,7,0,2,1,6,0,1,1,1,0
DATA 5,1,9,0,2,1,4,0,1,1,6,0,6,1,18,0,9,1,4,0,7,1,3,0,7,1
DATA 4,0,6,1,7,0,1,1,7,0,4,1,12,0,1,1,5,0,2,1,5,0,6,1,18,0
DATA 10,1,3,0,7,1,3,0,7,1,4,0,6,1,14,0,7,1,16,0,2,1,4,0
DATA 7,1,17,0,11,1,3,0,27,1,14,0,9,1,6,0,2,1,6,0,3,1,3,0
DATA 7,1,17,0,11,1,3,0,7,1,3,0,7,1,4,0,6,1,14,0,6,1,8,0
DATA 4,1,6,0,2,1,3,0,6,1,17,0,12,1,3,0,7,1,3,0,7,1,4,0,6,1
DATA 13,0,7,1,7,0,7,1,4,0,3,1,2,0,6,1,17,0,4,1,2,0,6,1,3,0
DATA 7,1,3,0,7,1,4,0,3,1,10,0,27,1,4,0,3,1,1,0,7,1,16,0
DATA 4,1,2,0,7,1,3,0,3,1,7,0,7,1,22,0,7,1,5,0,7,1,7,0,10,1
DATA 16,0,4,1,3,0,7,1,13,0,7,1,22,0,6,1,6,0,6,1,9,0,9,1
DATA 16,0,3,1,4,0,7,1,13,0,7,1,21,0,7,1,6,0,6,1,9,0,8,1
DATA 16,0,3,1,5,0,7,1,13,0,7,1,21,0,6,1,6,0,7,1,9,0,8,1
DATA 15,0,2,1,7,0,7,1,13,0,7,1,2,0,2,1,16,0,6,1,7,0,6,1
DATA 11,0,6,1,16,0,1,1,8,0,7,1,13,0,7,1,2,0,5,1,13,0,6,1
DATA 6,0,7,1,11,0,7,1,24,0,7,1,13,0,7,1,3,0,5,1,11,0,19,1
DATA 11,0,9,1,23,0,7,1,13,0,7,1,4,0,6,1,9,0,6,1,2,0,11,1
DATA 10,0,12,1,21,0,7,1,13,0,7,1,5,0,6,1,8,0,6,1,5,0,9,1
DATA 9,0,13,1,20,0,7,1,13,0,7,1,5,0,7,1,9,0,3,1,6,0,11,1
DATA 6,0,5,1,1,0,10,1,18,0,7,1,1,0,31,1,11,0,1,1,5,0,12,1
DATA 5,0,5,1,2,0,12,1,9,0,14,1,1,0,24,1,1,0,7,1,14,0,7,1
DATA 1,0,7,1,3,0,5,1,4,0,12,1,8,0,13,1,2,0,21,1,4,0,7,1
DATA 13,0,7,1,3,0,6,1,2,0,5,1,6,0,9,1,13,0,10,1,3,0,16,1
DATA 8,0,7,1,12,0,6,1,6,0,4,1,2,0,4,1,9,0,7,1,15,0,9,1,3,0
DATA 12,1,13,0,6,1,10,0,6,1,9,0,3,1,1,0,4,1,11,0,5,1,16,0
DATA 8,1,4,0,9,1,16,0,6,1,8,0,6,1,14,0,3,1,15,0,3,1,16,0
DATA 7,1,6,0,4,1,20,0,5,1,6,0,6,1,15,0,3,1,18,0,1,1,18,0
DATA 5,1,7,0,2,1,23,0,3,1,7,0,2,1,19,0,1,1,52,0,1,1,138,0

SpaceDATA:
DATA 5, 34, 67, 100, 135, 169, 203, 239, 273

PuzzleEG:
DATA 1,2,3,4,5,6,7,8,9
DATA 4,5,6,7,8,9,1,2,3
DATA 7,8,9,1,2,3,4,5,6
DATA 2,3,4,5,6,7,8,9,1
DATA 5,6,7,8,9,1,2,3,4
DATA 8,9,1,2,3,4,5,6,7
DATA 3,4,5,6,7,8,9,1,2
DATA 6,7,8,9,1,2,3,4,5
DATA 9,1,2,3,4,5,6,7,8

RESTORE PuzzleEG
FOR Row = 1 TO 9
FOR Col = 1 TO 9
READ Value
Puzzle(Row, Col) = Value + 100
NEXT Col
NEXT Row
DEF SEG = VARSEG(Puzzle(1, 1))
BSAVE "SuDoku.PSD", VARPTR(Puzzle(1, 1)), 162
DEF SEG

SUB Graphics

OUT &H3C8, 0: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 21
OUT &H3C8, 1: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 55
OUT &H3C8, 2: OUT &H3C9, 42: OUT &H3C9, 42: OUT &H3C9, 63
OUT &H3C8, 3: OUT &H3C9, 0: OUT &H3C9, 0: OUT &H3C9, 42
OUT &H3C8, 4: OUT &H3C9, 63: OUT &H3C9, 0: OUT &H3C9, 0
OUT &H3C8, 6: OUT &H3C9, 21: OUT &H3C9, 46: OUT &H3C9, 63
OUT &H3C8, 8: OUT &H3C9, 16: OUT &H3C9, 16: OUT &H3C9, 21
OUT &H3C8, 10: OUT &H3C9, 31: OUT &H3C9, 31: OUT &H3C9, 63

GOSUB GetNUMS

FOR x = 0 TO 300
FOR y = 0 TO 30
IF y > 12 THEN Colr = 5 ELSE Colr = 13
IF POINT(x, y) <> 0 THEN PSET (x, y), Colr
NEXT y
NEXT x
Index = 1
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
GET (x, 0)-(x + 16, 26), NumBOX(Index)
Index = Index + 165
NEXT Reps
FOR x = 0 TO 300
FOR y = 0 TO 30
IF y > 12 THEN Colr = 7 ELSE Colr = 15
IF POINT(x, y) <> 0 THEN PSET (x, y), Colr
NEXT y
NEXT x
Index = 1501
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
GET (x, 0)-(x + 16, 26), NumBOX(Index)
Index = Index + 165
NEXT Reps

FOR x = 0 TO 300
FOR y = 0 TO 30
IF y > 13 THEN Colr = 4 ELSE Colr = 12
IF POINT(x, y) <> 0 THEN PSET (x, y), Colr
NEXT y
NEXT x
Index = 3001
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
GET (x, 0)-(x + 16, 26), NumBOX(Index)
Index = Index + 165
NEXT Reps

FOR x = 0 TO 300
FOR y = 0 TO 30
IF y > 12 THEN Colr = 5 ELSE Colr = 13
IF POINT(x, y) <> 0 THEN PSET (x, y), Colr
NEXT y
NEXT x
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
CIRCLE (x + 8, 14), 8, 4
DRAW "E6G10"
NEXT Reps
Index = 4501
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
GET (x, 0)-(x + 16, 26), NumBOX(Index)
PUT (x, 0), NumBOX(Index)
Index = Index + 165
NEXT Reps

'Blanks
Index = 6001
RESTORE SpaceDATA
FOR Reps = 1 TO 9
READ x
GET (x, 0)-(x + 16, 26), NumBOX(Index)
Index = Index + 165
NEXT Reps
DEF SEG = VARSEG(NumBOX(1))
BSAVE "SudokuNM.BSV", VARPTR(NumBOX(1)), 15000
DEF SEG

GOSUB GetFONT
GOSUB Instructions

FOR x = 171 TO 427 STEP 32
FOR y = 124 TO 380 STEP 32
LINE (x, y)-(x + 32, y + 32), 5, B
NEXT y
NEXT x
FOR x = 171 TO 427 STEP 96
FOR y = 124 TO 380 STEP 96
LINE (x - 1, y - 1)-(x + 97, y + 97), 9, B
LINE (x + 1, y + 1)-(x + 95, y + 95), 9, B
NEXT y
NEXT x
FOR x = 171 TO 427 STEP 96
FOR y = 124 TO 380 STEP 96
LINE (x, y)-(x + 96, y + 96), 13, B
NEXT y
NEXT x
LINE (166, 119)-(464, 417), 7, B
LINE (5, 5)-(634, 474), 8, B
LINE (8, 8)-(631, 471), 8, B, &HCCCC

GOSUB DrawTITLE
FOR x = 200 TO 430
IF POINT(x, 87) = 9 THEN PSET (x, 87), 11
IF POINT(x, 88) = 9 THEN PSET (x, 88), 11
IF POINT(x, 89) = 9 THEN PSET (x, 89), 11
IF POINT(x, 91) = 9 THEN PSET (x, 91), 11
NEXT x
FOR y = 60 TO 95
FOR x = 200 TO 430
IF POINT(x, y) = 9 THEN PSET (x, y), 10
NEXT x
NEXT y
FOR y = 80 TO 95
FOR x = 200 TO 430
IF POINT(x, y) = 10 THEN PSET (x, y), 2
NEXT x
NEXT y
FOR y = 84 TO 95
FOR x = 200 TO 430
IF POINT(x, y) = 2 THEN PSET (x, y), 6
NEXT x
NEXT y

x = 18
PrintSTRING x, 16, "EXIT:[Esc]"
x = x + 29
PrintSTRING x, 16, "INSTRUCTIONS:[I]"
x = x + 29
PrintSTRING x, 16, "PUZZLE:[E/M/H]"
x = x + 29
PrintSTRING x, 16, "TEST:[T]"
x = x + 29
PrintSTRING x, 16, "SAVE:[S]"
x = x + 29
PrintSTRING x, 16, "LOAD:[L]"
x = x + 29
PrintSTRING x, 16, "CREATE PUZZLE:[C]"

by$ = "Copyright (C) 2005 by Bob Seguin (Freeware)"
PrintSTRING 18, 450, by$
PrintSTRING 438, 450, "Puzzles courtesy of DailySuDoku.com"
FOR x = 16 TO 628
FOR y = 16 TO 21
IF POINT(x, y) = 9 THEN PSET (x, y), 10
IF POINT(x, y + 435) = 9 THEN PSET (x, y + 435), 10
NEXT y
NEXT x
DEF SEG = VARSEG(Box(1))
FOR y = 0 TO 320 STEP 160
GET (0, y)-(639, y + 159), Box
FileNUM = FileNUM + 1
FileNAME$ = "SuDokuS" + LTRIM$(STR$(FileNUM)) + ".BSV"
BSAVE FileNAME$, VARPTR(Box(1)), 52000
NEXT y
DEF SEG

EXIT SUB

GetNUMS:
RESTORE NumberDATA
MaxWIDTH = 298
MaxDEPTH = 90
x = 0: y = 0

DO
READ Count, Colr
FOR Reps = 1 TO Count
PSET (x, y), Colr
x = x + 1
IF x > MaxWIDTH THEN
x = 0
y = y + 1
END IF
NEXT Reps
LOOP UNTIL y > MaxDEPTH
RETURN

DrawTITLE:
RESTORE TitleDATA
MaxWIDTH = 430
MaxDEPTH = 109
x = 200: y = 56
'230/53

DO
READ Count, Colr
FOR Reps = 1 TO Count
PSET (x, y), Colr
x = x + 1
IF x > MaxWIDTH THEN
x = 200
y = y + 1
END IF
NEXT Reps
LOOP UNTIL y > MaxDEPTH
LINE (250, 70)-(270, 71), 10, B
GOSUB GetSYMS
GET (20, 20)-(75, 70), Box
PUT (20, 20), Box
PUT (66, 220), Box
GET (75, 20)-(130, 70), Box
PUT (75, 20), Box
PUT (519, 220), Box
PrintSTRING 86, 276, "Su"
LINE (93, 278)-(95, 278), 9
PrintSTRING 533, 276, "Doku"
FOR x = 86 TO 556
IF x = 98 THEN x = 533
FOR y = 277 TO 281
IF POINT(x, y) = 9 THEN PSET (x, y), 10
NEXT y
NEXT x
RETURN

GetSYMS:
RESTORE Japanese
MaxWIDTH = 127
MaxDEPTH = 70
x = 20: y = 20

DO
READ Count, Colr
FOR Reps = 1 TO Count
SELECT CASE y
CASE 20 TO 42: Colr2 = 1
CASE 43 TO 46: Colr2 = 9
CASE IS > 46: Colr2 = 3
END SELECT
IF Colr <> 0 THEN PSET (x, y), Colr2
x = x + 1
IF x > MaxWIDTH THEN
x = 20
y = y + 1
END IF
NEXT Reps
LOOP UNTIL y > MaxDEPTH
RETURN

GetGL:
RESTORE GLDATA
MaxWIDTH = 81
MaxDEPTH = 20
x = 0: y = 0

DO
READ Count, Colr
FOR Reps = 1 TO Count
PSET (x, y), Colr
x = x + 1
IF x > MaxWIDTH THEN
x = 0
y = y + 1
END IF
NEXT Reps
LOOP UNTIL y > MaxDEPTH
GET (0, 0)-(81, 20), Box(25000)
PUT (0, 0), Box(25000)
RETURN

GetFONT:
Index = 2
'PUT (8, 30), Box 'back 130, down 10
FOR y = 32 TO 78 STEP 15
FOR x = 13 TO 290 STEP 12
GET (x, y)-(x + 11, y + 11), Box(Index)
PUT (x, y), Box(Index)
Index = Index + 50
IF Index = 94 * 50 + 2 THEN EXIT FOR
NEXT x
NEXT y
FontBOX(0) = 50
FontBOX(1) = 4
FOR Index = 2 TO 93 * 50 + 2 STEP 50
LINE (0, 200)-(20, 220), 0, BF
PUT (0, 200), Box(Index)
x1 = -1: x2 = -1
FOR x = 0 TO 20
FOR y = 200 TO 220
IF POINT(x, y) <> 0 AND x1 = -1 THEN x1 = x
NEXT y
NEXT x
FOR x = 20 TO 0 STEP -1
FOR y = 200 TO 220
IF POINT(x, y) <> 0 AND x2 = -1 THEN x2 = x
NEXT y
NEXT x
FOR cx = 0 TO 20
FOR cy = 200 TO 220
IF POINT(cx, cy) <> 0 THEN PSET (cx, cy), 9
NEXT cy
NEXT cx
GET (x1, 200)-(x2 + 1, 211), FontBOX(Index)
NEXT Index
LINE (0, 200)-(20, 220), 0, BF
RETURN

Instructions:
GOSUB GetGL
LINE (172, 118)-(482, 268), 2, BF
PrintSTRING 200, 138, "SUDOKU (Soo-Dock-oo)"
PrintSTRING 200, 152, "Sudoku is Japanese for 'Single Numbers'. The object"
PrintSTRING 200, 164, "of the game is to complete the 9 by 9 grid as follows:"
PrintSTRING 200, 180, "Each of the nine vertical columns and each of the"
PrintSTRING 200, 192, "nine horizontal rows must contain all numbers from"
PrintSTRING 200, 204, "1 to 9 (none repeated, of course). What's more, the"
PrintSTRING 200, 216, "nine 3 by 3 boxes must each contain all numbers"
PrintSTRING 200, 228, "from 1 to 9."
FOR x = 200 TO 482
FOR y = 138 TO 250
IF y > 152 THEN Colr = 0 ELSE Colr = 15
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
LINE (178, 124)-(476, 262), 15, B
PrintSTRING 260, 248, "Press any key to continue..."
FOR x = 252 TO 400
FOR y = 248 TO 260
IF POINT(x, y) <> 2 THEN PSET (x, y), 15
NEXT y
NEXT x
GET (172, 118)-(482, 268), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuH1.BSV", VARPTR(Box(1)), 11780 * 2
DEF SEG
LINE (172, 118)-(482, 268), 2, BF
PrintSTRING 200, 138, "HOW TO PLAY"
PrintSTRING 200, 152, "To enter numbers, move the yellow cursor box using"
PrintSTRING 200, 164, "the arrow keys, then press the desired number."

PrintSTRING 200, 179, "Press [T] (Test) at any time to check for duplicate"
PrintSTRING 200, 191, "numbers. If there are any, they will be highlighted."
PrintSTRING 200, 203, "Press [T] when you've finished to see if you've won."
PrintSTRING 200, 218, "To select one of the many included sample puzzles,"
PrintSTRING 200, 230, "press [E] (Easy), [M] (Medium) or [H] (Hard)."
FOR x = 200 TO 482
FOR y = 138 TO 250
IF y > 152 THEN Colr = 0 ELSE Colr = 15
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
LINE (178, 124)-(476, 262), 15, B
PrintSTRING 260, 248, "Press any key to continue..."
FOR x = 252 TO 400
FOR y = 248 TO 260
IF POINT(x, y) <> 2 THEN PSET (x, y), 15
NEXT y
NEXT x
GET (172, 118)-(482, 268), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuH2.BSV", VARPTR(Box(1)), 11780 * 2
DEF SEG
LINE (172, 118)-(482, 268), 2, BF
PrintSTRING 200, 138, "HOW TO GET MORE PUZZLES"
PrintSTRING 200, 152, "If you wish to program your own puzzles, visit the"
PrintSTRING 200, 164, "SuDoku website at DailySuDoku.com and copy or"
PrintSTRING 200, 176, "print out the daily SuDoku you will find there."
PrintSTRING 200, 192, "To play the copied puzzles in this environment, press"
PrintSTRING 200, 204, "[C] (Create puzzle) and use the cursor method to enter"
PrintSTRING 200, 216, "the puzzle numbers (to erase a number, press zero)."
PrintSTRING 200, 228, "When the puzzle has been entered, press [C] again."
FOR x = 200 TO 482
FOR y = 138 TO 250
IF y > 152 THEN Colr = 0 ELSE Colr = 15
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
FOR x = 290 TO 376
FOR y = 164 TO 176
IF POINT(x, y) <> 2 THEN PSET (x, y), 15
NEXT y
NEXT x
LINE (178, 124)-(476, 262), 15, B
PrintSTRING 260, 248, "Press any key to continue..."
FOR x = 252 TO 400
FOR y = 248 TO 260
IF POINT(x, y) <> 2 THEN PSET (x, y), 15
NEXT y
NEXT x
GET (172, 118)-(482, 268), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuH3.BSV", VARPTR(Box(1)), 11780 * 2
DEF SEG
LINE (172, 118)-(482, 268), 2, BF
PrintSTRING 200, 138, "SAVING GAMES"
PrintSTRING 200, 152, "If you wish to quit a puzzle and come back to it"
PrintSTRING 200, 164, "later, Press [S] (Save). The Save function doesn't"
PrintSTRING 200, 176, "prompt for a file name, since only one puzzle can"
PrintSTRING 200, 188, "be saved using this method."

PrintSTRING 200, 204, "When you wish to return to the saved puzzle, press"
PrintSTRING 200, 216, "[L] (Load)."
FOR x = 200 TO 482
FOR y = 138 TO 250
IF y > 152 THEN Colr = 0 ELSE Colr = 15
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
LINE (178, 124)-(476, 262), 15, B
PrintSTRING 246, 248, "Press any key to return to game..."
FOR x = 246 TO 430
FOR y = 249 TO 260
IF POINT(x, y) <> 2 THEN PSET (x, y), 15
NEXT y
NEXT x
PUT (344, 224), Box(25000)
FOR x = 344 TO 434
FOR y = 224 TO 249
IF y > 234 THEN Colr = 4 ELSE Colr = 12
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (172, 118)-(482, 268), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuH4.BSV", VARPTR(Box(1)), 11780 * 2
DEF SEG
LINE (172, 118)-(482, 268), 0, BF
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 258, 214, "Press a number from 1 to 9"
FOR x = 258 TO 400
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "Sudoku19.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 255, 214, "The Puzzle has been saved"
FOR x = 255 TO 400
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuSV.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 280, 214, "So far, so good!"
FOR x = 255 TO 400
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuSF.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 248, 214, "You can now play your puzzle."
FOR x = 248 TO 400
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuPC.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 0, BF
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 232, 214, "You are now in Puzzle Creation Mode"
FOR x = 232 TO 430
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuMD.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 2, BF
LINE (204, 204)-(436, 236), 15, B
PrintSTRING 249, 214, "Sure you want to quit? [Y/N]"
FOR x = 232 TO 430
FOR y = 214 TO 226
IF y > 221 THEN Colr = 0 ELSE Colr = 3
IF POINT(x, y) <> 2 THEN PSET (x, y), Colr
NEXT y
NEXT x
GET (200, 200)-(440, 240), Box
DEF SEG = VARSEG(Box(1))
BSAVE "SudokuQT.BSV", VARPTR(Box(1)), 6000
DEF SEG
LINE (200, 200)-(440, 240), 0, BF
RETURN

END SUB

SUB PrintSTRING (x, y, Prnt$)

FOR i = 1 TO LEN(Prnt$)
Char$ = MID$(Prnt$, i, 1)
IF Char$ = " " THEN
x = x + FontBOX(1)
ELSE
Index = (ASC(Char$) - 33) * FontBOX(0) + 2
PUT (x, y), FontBOX(Index)
x = x + FontBOX(Index)
END IF
NEXT i

END SUB

SUB PutNUM (Row, Col, number, Style)

x = (Col - 1) * 32 + 179
y = (Row - 1) * 32 + 127
Index = (number - 1) * 165 + 1
Index = Index + Style * 1500
PUT (x, y), NumBOX(Index), PSET

END SUB


 
 Respond to this message   
 Copyright © 1999-2014 Network54. All rights reserved.   Terms of Use   Privacy Statement