Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 2 KB
PROGRAM Ut;
CONST
N = 8;
M = 16;
VAR
map: ARRAY [0..N+1, 0..M+1] OF BOOLEAN;
red: ARRAY [0..N+1, 0..M+1] OF BOOLEAN;
PROCEDURE Kirajzol(fal, piros: CHAR);
VAR
sor, oszlop: BYTE;
BEGIN
FOR sor:= 0 TO N+1 DO
BEGIN
FOR oszlop:= 0 TO M+1 DO
BEGIN
IF NOT map[sor, oszlop] THEN Write(fal)
ELSE IF red[sor, oszlop] THEN Write(piros)
ELSE Write(' ');
END;
WriteLn;
END;
END;
PROCEDURE VTerkep;
VAR
sor, oszlop: BYTE;
BEGIN
Randomize;
FOR sor:= 0 TO N+1 DO
BEGIN
FOR oszlop:= 0 TO M+1 DO
BEGIN
map[sor, oszlop]:= (Random() > 0.3)
AND NOT ((sor=0) OR (sor=N+1)
OR (oszlop=0) OR (oszlop=M+1));
END;
END;
END;
FUNCTION Ut(sor1, oszlop1, sor2, oszlop2: BYTE): BOOLEAN;
VAR
volt: BOOLEAN;
sor, oszlop: BYTE;
PROCEDURE Szomsz(s, o, s2, o2: BYTE; VAR volt: BOOLEAN);
BEGIN
IF (map[s2, o2] = TRUE) AND (red[s2, o2] = FALSE) THEN
BEGIN
volt:= TRUE;
red[s2, o2]:= TRUE;
END;
END;
BEGIN
FOR sor:= 0 TO N+1 DO
BEGIN
FOR oszlop:= 0 TO M+1 DO
BEGIN
red[sor, oszlop]:= FALSE;
END;
END;
red[sor1, oszlop1]:= TRUE;
REPEAT
volt:= FALSE;
FOR sor:= 1 TO N DO
BEGIN
FOR oszlop:= 1 TO M DO
BEGIN
IF (red[sor, oszlop]) THEN
BEGIN
Szomsz(sor, oszlop, sor+1, oszlop , volt);
Szomsz(sor, oszlop, sor , oszlop+1, volt);
Szomsz(sor, oszlop, sor-1, oszlop , volt);
Szomsz(sor, oszlop, sor , oszlop-1, volt);
END;
END;
END;
UNTIL (volt = FALSE) OR (red[sor2, oszlop2]);
Ut:= red[sor2, oszlop2];
END;
BEGIN
VTerkep;
map[1, 1]:= TRUE;
map[N, M]:= TRUE;
Kirajzol('#', ' ');
WriteLn('van ut: ', Ut(1, 1, N, M));
Kirajzol('#', '*');
END.