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 DIM A(80), B(2), C(80), X(243)
110 DIM Y1(80), Y2(80), Y3(80)
120 FOR V = 0 TO 2
130 FOR W = 0 TO 2
140 READ A$
150 FOR N = 0 TO 2
160 FOR M = 0 TO 2
170 Y1(C) = 27 * V + 9 * W
180 Y2(C) = 27 * N + 9 * M + 81
190 Y3(C) = 27 * V + 9 * N + 162
200 A = ASC(MID$(A$, 3 * N + M + 1)) - 48
210 IF A = 0 GOTO 270
220 A(C) = A
230 B(V) = B(V) + 1
240 X(Y1(C) + A) = 1
250 X(Y2(C) + A) = 1
260 X(Y3(C) + A) = 1
270 C = C + 1
280 NEXT M, N, W, V
290 FOR V = 0 TO 2
300 N = 0
310 FOR W = 0 TO 2
320 IF B(W) > B(N) THEN N = W
330 NEXT
340 B(N) = -1
350 FOR C = 27 * N TO 27 * N + 26
360 IF A(C) = 0 THEN C(D) = C: D = D + 1
370 NEXT C, V
400 C = C(B)
410 A = A(C)
420 IF A = 0 GOTO 470
430 X(Y1(C) + A) = 0
440 X(Y2(C) + A) = 0
450 X(Y3(C) + A) = 0
460 IF A = 9 THEN A(C) = 0: GOTO 640
470 A = A + 1
480 IF X(Y1(C) + A) GOTO 460
490 IF X(Y2(C) + A) GOTO 460
500 IF X(Y3(C) + A) GOTO 460
510 X(Y1(C) + A) = 1
520 X(Y2(C) + A) = 1
530 X(Y3(C) + A) = 1
540 A(C) = A
550 B = B + 1
560 IF B < D GOTO 400
570 Z = Z + 1
580 PRINT , , "**"; Z; "**"
590 FOR V = 0 TO 8
600 PRINT CHR$(13),
610 FOR W = 0 TO 8
620 PRINT A(9 * V + W);
630 NEXT W, V
640 IF B THEN B = B - 1: GOTO 400
670 DATA 000076000
680 DATA 100038740
690 DATA 070000000
700 DATA 004060501
710 DATA 067000280
720 DATA 301040600
730 DATA 000000010
740 DATA 025610009
750 DATA 000980000
No hay comentarios