Sudoku C64
Basic
Actualizado el 24 de Enero del 2026 por Adelino (28 códigos) (Publicado el 23 de Octubre del 2019)
12.891 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 G(2),K(255)
40 c0=49152: c1=49408: c2=49664
50 c3=49920: c4=50176: c5=50432
60 c6=50688: c7=50944
70 c8=51200: c9=51456
80 for y=0 to 990 poke c9+y+65,y+10
100 poke c9+y+48,y
110 poke c9+y,y+48
120 K(y+48)=y+48
130 next
140 K(32)=32: K(46)=32: K(48)=32
150 poke c9+32,10: q=1133
160 for y=828 to 958: read a$
170 a=peek(c9+asc(mid$(a$,2)))
180 poke y,a+16*peek(c9+asc(a$))
190 next
200 for y=0 to 2210 for x=0 to 2: read a$: q=q+62
220 for n=0 to 2230 for m=0 to 2240 poke q+41,91
250 poke q-1,66: poke q+1,66
260 poke q-40,67: poke q+40,67
270 if y+x=0 then poke q-39,114
280 if y+x=4 then poke q+41,113
290 if n+m=0 then poke q+39,107
300 if n+m=4 then poke q+41,115
310 poke q,K(asc(mid$(a$,3*n+m+1)))
320 poke q+54272,1
330 poke c7+c,q/256
340 poke c6+c,q-256*int(q/256)
350 poke c5+c,27*y+9*n
360 poke c4+c,27*n+9*m
370 poke c3+c,27*y+9*x
380 c=c+1: q=q+2
390 poke c2+c,0
400 poke c1+c,0
410 poke c0+c,0
420 next m,n,x,y
430 poke 1154,112: poke 1172,110
440 poke q+21,109: poke q+39,125
450 a=0: c=0
455 rem ***** Teclado *****
460 if a=29 and c<80 then c=c+1
470 if a=17 and c<72 then c=c+9
480 if a=157 and c>0 then c=c-1
490 if a=145 and c>8 then c=c-9
500 q=peek(c6+c)+256*peek(c7+c)
510 if K(a) then poke q,K(a): a=29: goto 460
520 poke q,peek(q)+128
530 get a$: if a$="" goto 530
540 poke q,peek(q)-128
550 a=asc(a$): if a<>13 goto 460
555 rem ***** Validar *****
560 for c=0 to 80570 q=peek(c6+c)+256*peek(c7+c)
580 a=peek(q)-48
590 if peek(c0+peek(c3+c)+a) then a=-1
600 if peek(c1+peek(c4+c)+a) then a=-1
610 if peek(c2+peek(c5+c)+a) then a=-1
620 if a<0 then poke q,32: goto 680
630 poke c0+peek(c3+c)+a,1
640 poke c1+peek(c4+c)+a,1
650 poke c2+peek(c5+c)+a,1
660 poke q+54272,14
670 G(c/27)=G(c/27)+1
680 next
685 rem ***** Ordenar *****
690 for y=0 to 2: x=0
700 if G(1)>G(x) then x=1
710 if G(2)>G(x) then x=2
720 G(x)=-1
730 for c=27*x to 27*x+26
740 poke c8+b,c
750 q=peek(c6+c)+256*peek(c7+c)
760 if peek(q)<49 then b=b+1
770 next c,y780 poke 254,sgn(b)
790 poke c8+b,255
800 sys 834
810 get a$: if a$<>" " goto 810
820 if peek(254)<255 goto 800
825 rem ***** Ensamblador *****
828 data A9,20 : rem *LDA #20
830 data A0,00 : rem LDY #00
832 data 91,B2 : rem STA (B2),Y
834 data C6,FE : rem DEC FE
836 data 30,78 : rem BMI 958
838 data A4,FE : rem LDY FE
840 data BE,00,C8: rem LDX C800,Y
843 data BD,00,C7: rem *LDA C700,X
846 data 85,B3 : rem STA B3
848 data BD,00,C6: rem LDA C600,X
851 data 85,B2 : rem STA B2
853 data A0,00 : rem LDY #00
855 data B1,B2 : rem LDA (B2),Y
857 data A8 : rem TAY858 data B9,00,C9: rem LDA C900,Y
861 data A8 : rem TAY862 data 18 : rem CLC863 data 7D,00,C3: rem ADC C300,X
866 data 85,FB : rem STA FB
868 data 98 : rem TYA869 data 7D,00,C4: rem ADC C400,X
872 data 85,FC : rem STA FC
874 data 98 : rem TYA875 data 7D,00,C5: rem ADC C500,X
878 data 85,FD : rem STA FD
880 data C0,0A : rem CPY #0A
882 data F0,0F : rem BEQ 899
884 data A6,FB : rem LDX FB
886 data DE,00,C0: rem DEC C000,X
889 data A6,FC : rem LDX FC
891 data DE,00,C1: rem DEC C100,X
894 data A6,FD : rem LDX FD
896 data DE,00,C2: rem DEC C200,X
899 data 88 : rem *DEY
900 data F0,B6 : rem BEQ 828
902 data C6,FB : rem DEC FB
904 data C6,FC : rem DEC FC
906 data C6,FD : rem DEC FD
908 data A6,FB : rem LDX FB
910 data BD,00,C0: rem LDA C000,X
913 data D0,F0 : rem BNE 899
915 data A6,FC : rem LDX FC
917 data BD,00,C1: rem LDA C100,X
920 data D0,E9 : rem BNE 899
922 data A6,FD : rem LDX FD
924 data BD,00,C2: rem LDA C200,X
927 data D0,E2 : rem BNE 899
929 data FE,00,C2: rem INC C200,X
932 data A6,FC : rem LDX FC
934 data FE,00,C1: rem INC C100,X
937 data A6,FB : rem LDX FB
939 data FE,00,C0: rem INC C000,X
942 data B9,00,C9: rem LDA C900,Y
945 data A0,00 : rem LDY #00
947 data 91,B2 : rem STA (B2),Y
949 data E6,FE : rem INC FE
951 data A4,FE : rem LDY FE
953 data BE,00,C8: rem LDX C800,Y
956 data 10,8D : rem BPL 843
958 data 60 : rem *RTS
1000 rem ***** Dificil *****
1010 data 5.2......
1020 data ....6.9..
1030 data .........
1040 data .41..7...
1050 data ...5...6.
1060 data ..5..2...
1070 data .97.85...
1080 data .......35
1090 data .54....96
1500 rem ***** Facil *****
1510 data ....76...
1520 data 1...3874.
1530 data .7.......
1540 data ..4.6.5.1
1550 data .67...28.
1560 data 3.1.4.6..
1570 data .......1.
1580 data .2561...9
1590 data ...98....
Comentarios sobre la versión: 1.7 (0)
No hay comentarios