X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Fpascal%2FROSS.PS;fp=sw%2Fsrc%2Fpascal%2FROSS.PS;h=f2ebb5164302aa9ba3361d075cd8bcf6fb39a170;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/pascal/ROSS.PS b/sw/src/pascal/ROSS.PS new file mode 100644 index 0000000..f2ebb51 --- /dev/null +++ b/sw/src/pascal/ROSS.PS @@ -0,0 +1,52 @@ +PROGRAM ROESSELSPRUNG(OUTPUT); + +CONST N = 5; NSQ = 25; + +VAR I,J: INTEGER; + FELD: ARRAY[1..N,1..N] OF INTEGER; + A,B: ARRAY[1..8] OF INTEGER; + ERFOLGREICH: BOOLEAN; + + +PROCEDURE VERSUCH(I: INTEGER; X,Y: INTEGER); + VAR K,U,V: INTEGER; +BEGIN K := 0; + REPEAT K:= K+1; + U := X + A[K]; V := Y + B[K]; + IF (1<=U) AND (U<=N) AND (1<=V) AND (V<=N) THEN IF FELD[U,V]=0 THEN + BEGIN + FELD[U,V] := I; + IF I < NSQ THEN + BEGIN + VERSUCH(I+1,U,V); + IF NOT ERFOLGREICH THEN FELD[U,V] := 0 + END + ELSE ERFOLGREICH := TRUE + END + UNTIL ERFOLGREICH OR (K=8) +END (* VERSUCH *); + +BEGIN + A[1] := 2; B[1] := 1; + A[2] := 1; B[2] := 2; + A[3] := -1; B[3] := 2; + A[4] := -2; B[4] := 1; + A[5] := -2; B[5] := -1; + A[6] := -1; B[6] := -2; + A[7] := 1; B[7] := -2; + A[8] := 2; B[8] := -1; + + ERFOLGREICH := FALSE; + FOR I := 1 TO N DO FOR J := 1 TO N DO FELD[I,J] := 0; + + FELD[1,1] := 1; VERSUCH(2,1,1); + + WRITELN("WEG DES SPRINGERS:"); WRITELN; + IF ERFOLGREICH THEN + FOR I := 1 TO N DO + BEGIN + FOR J := 1 TO N DO WRITE( FELD[I,J] :5); + WRITELN + END + ELSE WRITELN("KEINE LOESUNG!") +END.