39 lines
1.2 KiB
Text
39 lines
1.2 KiB
Text
BEGIN
|
|
INTEGER U, COLUMNS, LINES;
|
|
COLUMNS := 40;
|
|
LINES := 80;
|
|
U := ININT;
|
|
BEGIN
|
|
CHARACTER ARRAY SCREEN(0:LINES, 0:COLUMNS);
|
|
INTEGER X, Y, I, VERTEX;
|
|
|
|
FOR X := 0 STEP 1 UNTIL LINES-1 DO
|
|
FOR Y := 0 STEP 1 UNTIL COLUMNS-1 DO
|
|
SCREEN(X, Y) := ' ';
|
|
|
|
X := RANDINT(0, LINES - 1, U);
|
|
Y := RANDINT(0, COLUMNS - 1, U);
|
|
|
|
FOR I := 1 STEP 1 UNTIL 5000 DO
|
|
BEGIN
|
|
VERTEX := RANDINT(1, 3, U);
|
|
IF VERTEX = 1 THEN BEGIN X := X // 2;
|
|
Y := Y // 2;
|
|
END ELSE
|
|
IF VERTEX = 2 THEN BEGIN X := LINES // 2 + (LINES // 2 - X) // 2;
|
|
Y := COLUMNS - (COLUMNS - Y) // 2;
|
|
END ELSE
|
|
IF VERTEX = 3 THEN BEGIN X := LINES - (LINES - X) // 2;
|
|
Y := Y // 2;
|
|
END ELSE ERROR("VERTEX OUT OF BOUNDS");
|
|
SCREEN(X, Y) := 'X';
|
|
END;
|
|
|
|
FOR Y := 0 STEP 1 UNTIL COLUMNS-1 DO
|
|
BEGIN
|
|
FOR X := 0 STEP 1 UNTIL LINES-1 DO
|
|
OUTCHAR(SCREEN(X, Y));
|
|
OUTIMAGE;
|
|
END;
|
|
END;
|
|
END
|