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.


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