Sudoku C64
Basic
Actualizado el 27 de Diciembre del 2019 por Adelino (27 códigos) (Publicado el 23 de Octubre del 2019)
10.201 visualizaciones desde el 23 de Octubre del 2019
Programa para Commodore 64.


100 POKE 53280,0: POKE 53281,0
110 PRINT CHR$(147)
120 DIM B(2),C(80),Q(80),X(242)
130 DIM Y1(80),Y2(80),Y3(80)
140 Q=1133
150 FOR V=0 TO 2
160 FOR W=0 TO 2
170 READ A$
180 Q=Q+62
190 FOR N=0 TO 2
200 FOR M=0 TO 2
210 POKE Q+54272,15
220 Y1(C)=27*V+9*W-49
230 Y2(C)=27*N+9*M+32
240 Y3(C)=27*V+9*N+113
250 Q(C)=Q
260 A=ASC(MID$(A$,3*N+M+1))
270 IF A=46 THEN A=32: GOTO 330
280 X(Y1(C)+A)=1
290 X(Y2(C)+A)=1
300 X(Y3(C)+A)=1
310 B(V)=B(V)+1
320 POKE Q+54272,11
330 POKE Q,A: POKE Q+41,91
340 POKE Q-1,66: POKE Q+1,66
350 POKE Q-40,67: POKE Q+40,67
360 IF V+W=0 THEN POKE Q-39,114
370 IF V+W=4 THEN POKE Q+41,113
380 IF N+M=0 THEN POKE Q+39,107
390 IF N+M=4 THEN POKE Q+41,115
400 C=C+1
410 Q=Q+2
420 NEXT M,N,W,V
430 POKE 1154,112: POKE 1172,110
440 POKE Q+21,109: POKE Q+39,125
450 FOR V=0 TO 2
460 N=0
470 FOR W=0 TO 2
480 IF B(W)>B(N) THEN N=W
490 NEXT
500 B(N)=-1
510 FOR C=27*N TO 27*N+26
520 IF PEEK(Q(C))=32 THEN C(D)=C: D=D+1
530 NEXT C,V
540 B=SGN(D)
550 B=B-1
560 IF B<0 THEN END
570 C=C(B)
580 A=PEEK(Q(C))
590 IF A=32 THEN A=49: GOTO 650
600 X(Y1(C)+A)=0
610 X(Y2(C)+A)=0
620 X(Y3(C)+A)=0
630 IF A=57 THEN POKE Q(C),32: GOTO 550
640 A=A+1
650 IF X(Y1(C)+A) GOTO 630
660 IF X(Y2(C)+A) GOTO 630
670 IF X(Y3(C)+A) GOTO 630
680 X(Y1(C)+A)=1
690 X(Y2(C)+A)=1
700 X(Y3(C)+A)=1
710 POKE Q(C),A
720 B=B+1
730 IF B<D GOTO 570
740 GET A$: IF A$<>" " GOTO 740
760 GOTO 550
770 DATA ....76...
780 DATA 1...3874.
790 DATA .7.......
800 DATA ..4.6.5.1
810 DATA .67...28.
820 DATA 3.1.4.6..
830 DATA .......1.
840 DATA .2561...9
850 DATA ...98....
No hay comentarios