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.