:0üNRC :0üR :0üC :0üF :0üCF :0üRF :AxesOff :GridOff :FnOff :ClDrw :0üxMin :126üxMax :0üyMax :ú62üyMin :ClLCD :Disp "Sudoku 86 v3.1","by DNA" :Menu(1,"New",NEW,2,"Cont.",RES,3,"Load",LD,5,"Quit",EXT :Lbl LD :Input "Game #: ",GME :Goto LDGM :Lbl NEW :randInt(1,99999üGME :Outpt(3,1,"Game:" :Outpt(3,6,GME :Lbl LDGM :GMEürand :Outpt(4,1,"Generating solution.." :Outpt(5,7,"% Done" :Outpt(6,1,"Press any key to exit" :DelVar(SUDO86 :{9,28}üdim SUDO86 :GMEüC :For(R,1,5 :int (C/10^(5-RüRF :RFüSUDO86(R,28 :C-(RF*10^(5-RüC :End :DelVar(SUDOT :[[5,3,4,6,7,8,9,1,2][6,7,2,1,9,5,3,4,8][1,9,8,3,4,2,5,6,7][8,5,9,7,6,1,4,2,3][4,2,6,8,5,3,7,9,1][7,1,3,9,2,4,8,5,6][9,6,1,5,3,7,2,8,4][2,8,7,4,1,9,6,3,5][3,4,5,2,8,6,1,7,9]]üSUDOT :randInt(10,20)üIT :Fix 2 :getKyüGK :0üGK :For(C,1,IT :Outpt(5,1," " :Outpt(5,1,((C-1)/IT)*100 :For(R,0,2 :getKyüGK :If GK :Goto EXTT :randInt(0,2)üOSR1 :randInt(0,2)üOSR2 :(R*3)+OSR1+1üOSR1 :(R*3)+OSR2+1üOSR2 :rSwap(SUDOT,OSR1,OSR2)üSUDOT :End :SUDOTöüSUDOT :End :Outpt(5,1," " :Outpt(5,1,"100.0" :Float :0üHNT :Outpt(6,1,"Choose difficulty. " :0üDIF :Menu(1,"1",A,2,"2",B,3,"3",C,4,"4",D,5,"5",E :Lbl A :DIF+1üDIF :Lbl B :DIF+1üDIF :Lbl C :DIF+1üDIF :Lbl D :DIF+1üDIF :Lbl E :DIF+1üDIF :8-DIFüSUDO86(8,28 :10+(DIF*2üDIF :For(NM,1,DIF :Lbl MSL :randInt(1,9üR :randInt(1,9üC :If SUDO86(R,C+9 :Goto MSL :1üSUDO86(R,C+9 :1üSUDO86(10-R,19-C :End :Lbl RSET :0üSUDO86(9,28 :0üSUDO86(7,28 :For(R,1,9 :For(C,1,9 :SUDO86(R,C)*SUDO86(R,C+9)üSUDO86(R,C+18 :End :End :Lbl RES :ClLCD :ClDrw :dim SUDO86=={9,28}üDL :If (DL(1)ø1 or DL(2)ø1 :Goto CORR :Lbl GD :0üGME :For(R,1,5 :GME+(SUDO86(R,28)*(10^(5-RüGME :End :MAKEBRD :For(R,1,9 :For(C,1,9 :DISPN :End :End :getKyüGK :0üGK :1üR :1üC :CURSR :Lbl KLOP :SUDO86(7,28)+.075üSUDO86(7,28 :Text(55,15,int(SUDO86(7,28 :getKyüGK :If GK==0 :Goto KLOP :If GK==22 :Goto EXT :If GK==34 :Goto MOVDN :If GK==25 :Goto MOVUP :If GK==24 :Goto MOVLT :If GK==26 :Goto MOVRT :If GK==11 :Goto MNU :If GK==102 :Then :0üNRC :Goto NUMA :End :If GK==92 :Then :1üNRC :Goto NUMA :End :If GK==93 :Then :2üNRC :Goto NUMA :End :If GK==94 :Then :3üNRC :Goto NUMA :End :If GK==82 :Then :4üNRC :Goto NUMA :End :If GK==83 :Then :5üNRC :Goto NUMA :End :If GK==84 :Then :6üNRC :Goto NUMA :End :If GK==72 :Then :7üNRC :Goto NUMA :End :If GK==73 :Then :8üNRC :Goto NUMA :End :If GK==74 :Then :9üNRC :Goto NUMA :End :Goto KLOP :Lbl MNU :Menu(1,"Hint",HNT,2,"Reset",RSET,3,"Resume",KLOP,4,"Check",CHK5,5,"Exit",EXT :Lbl HNT :If SUDO86(9,28)>SUDO86(8,28 :Goto KLOP :If SUDO86(R,C+9)ø0 :Goto KLOP :SUDO86(9,28)+1üSUDO86(9,28 :Text(42,85,SUDO86(8,28)-SUDO86(9,28)+1 :SUDO86(R,C)üSUDO86(R,C+18 :DISPN :Goto KLOP :Lbl CHK5 :0üRW :0üCW :0üWF :For(RW,1,9 :For(CW,1,9 :If SUDO86(RW,CW)øSUDO86(RW,CW+18 :1üWF :End :End :If WF==0 :Goto WIN :Goto KLOP :Lbl MOVUP :CURSR :R-1üR :If R==0 :9üR :CURSR :Goto KLOP :Lbl MOVDN :CURSR :R+1üR :If R==10 :1üR: :CURSR: :Goto KLOP :Lbl MOVLT :CURSR :C-1üC :If C==0 :9üC :CURSR :Goto KLOP :Lbl MOVRT :CURSR :C+1üC :If C==10 :1üC :CURSR :Goto KLOP :Lbl NUMA :If SUDO86(R,C+9 :Goto KLOP :NRCüSUDO86(R,C+18 :DISPN :Goto KLOP :Lbl CORR :Outpt(1,1,"Game file is corrupted." :Outpt(2,1,"Please start new." :Goto EXT :Lbl WIN :Shade(yMin,yMax :ClDrw :ClLCD :Outpt(1,1,"Congratulations!" :Outpt(2,1,"You win!!" :Goto EXT :Lbl EXTT :Float :ClLCD :Lbl EXT :DelVar(C :DelVar(CCK :DelVar(CD :DelVar(CF :DelVar(CST :DelVar(CT :DelVar(F :DelVar(GK :DelVar(GME :DelVar(NRC :DelVar(R :DelVar(RCK :DelVar(RD :DelVar(RF :DelVar(RL :DelVar(RST :DelVar(RT :DelVar(RW :DelVar(CW :DelVar(WF :DelVar(HNT :DelVar(DIF :DelVar(NM :DelVar(DL :Outpt(3,1,"Thank you for playing Sudoku 86..." :Stop