|
Ok
Yo cambiaría un par de cosas en los tipos, para hacerlos más comprensibles:
TYPE TNumero:1..9;
TCuadro=ARRAY[LOW(TNumero)..HIGH(TNumero)] OF TNumero;
TTablero=ARRAY[1..3,1..3] OF TCuadro;
Con estos tipos tendríamos desmembrados todo lo que "a simple vista" vemos en un sudoku =D
Pero como mejor te manejes ;)
Yo lo guardaría así:
PROCEDURE Guardar(dir:STRING;VAR cuad:TCuadricula);
VAR fich:TEXT;
i,j:sudocuadro;//Te aconsejo que a los tipos les pongas una "T" delante, como "TSudocuadro", para distinguir los identificadores de tipo de los de variables
BEGIN
{-------------------------}
FOR i:=LOW(i) TO HIGH(i) DO //LOW(i) en este caso será 1 y HIGH(i) será 10
BEGIN
FOR j:=LOW(j) TO HIGH(j) DO
BEGIN
WRITE(fich,cuad[i,j]);//o [j,i]; yo acostumbro a usar "i,j" en ese orden xD
END;
WRITELN(fich);
END;
Cre que es esto lo que preguntabas, no?
Cuando acaba una fila, inserta un salto de línea (#$13+#$10 son los 2 caracteres de salto de línea) gracias al WRITELN(fich);
Luego, continua con las demás
Si no he contestado a tu pregunta, acláramelo porfis
|