Die Mathe-Redaktion - 16.08.2018 19:25 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 358 Gäste und 18 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Informatik: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
Freigegeben von matroid am So. 07. Januar 2018 23:35:32
Verfasst von Delastelle -   340 x gelesen [Gliederung] [Statistik] Druckbare Version Druckerfreundliche Version
Software

\(\begingroup\)
David H. Ahl veröffentlichte 1978 seine "Basic Computer Games". 1982 erschienen 2 Bände auch auf Deutsch. Aus diesem Buch habe ich das Programm "Irrgarten" abgetippt. Es läuft in Commodore Basic für einen Plus 4. Außerdem habe ich das Programm in Turbo Pascal/Freepascal umgewandelt.
Also wer mal schnell einen Irrgarten benötigt - bitte sehr!


die ursprüngliche Klötzchengrafik des Basic-Programms für einen 19x10 Irrgarten

Teil 1: Basic


Vorgehensweise zum Rechnen:

(1) Start Vice Plus 4
(2) Options // Double size -> d.h. doppelt so großer Bildschirm
(3) Autostart Disk "IRR2.P00"
// Irr2.p00 findet man in meinem Notizbuch (siehe meine Stäbchen im Matheplanet-Profil Delastelle)
// zum Download es sollte im selben Verzeichnis wie Vice stehen
(4) DLOAD "IRR2" // DLOAD war mal Laden von Diskette
(5) RUN
Eingabe 1 < Enter >, z.B. 10 < Enter >, 10 < Enter >
(6) Options // Maximum Speed -> No Limit // bringt bei mir Geschwindigkeit von 48x so schnell wie Original "Plus 4"
(7) (Rechnung und Anzeige)
(8) Options // Maximum Speed -> 100 % // wieder normale "Plus 4"-Geschwindigkeit (für Tastatureingaben gut)
(9) < Enter > // verlassen des Grafikbildschirms

Umbelegung der Tastatur unter VICE

Beim Arbeiten mit dem VICE-Emulator sind die Tastatureingaben zum Teil mit anderen Zeichen belegt. (Deutscher Tastaturtreiber)
Dies betrifft z.B. die von mir benutzte Version von VICE.

PC-Taste -> VICE-Zeichen
ö -> :
, -> -
ß -> +
ä -> ;
, -> ,
. -> .
# -> =
+ -> *
- -> /
; -> <
: -> >
Z -> Y
Y -> Z

ein paar BASIC-Befehle

Ein paar nützliche Commodore-BASIC-Befehle:
DIRECTORY // zeigt Dateien im aktuellen Verzeichnis an
DLOAD"NAME" // lädt ein Programm von Festplatte
DSAVE"NAME" // speichert ein Programm auf Festplatte
GRAPHIC 0, GRAPHIC 1 // ausschalten, einschalten des Grafikbildschirms
LIST, LIST 100-200 // zeigt Zeilen eines BASIC-Programms an
PRINT, PRINT PI // Bildschirmausgabe
REM TEXT // Kommentar
RUN // Programmstart
SCNCLR // Bildschirm löschen
X = 1, PI = 3.14159265 // Zuweisung einer Variable

ein paar Hinweise zum Listing

Das Programm benutzt viele Goto-Anweisungen, es ist ein Beispiel für sogenannten Spaghetticode ( de.wikipedia.org/wiki/Spaghetticode ).
Das Programm ist somit nur schwer zu verstehen und zu verbessern. Auch ist es nicht völlig fehlerfrei.
Nicht immer gelingt es dem Programm ein fehlerfreies Labyrinth zu generieren. Ursprünglich wurde der Irrgarten mit Klötzchengrafik erzeugt (siehe erstes Bild oben).
Ich habe die Strich-Grafik hinzugefügt (restliche Bilder).


ein 30x30 Irrgarten
Basic
10 PRINT"IRRGARTEN"
80 INPUT"GRAPHISCH (0-NEIN, 1-JA)";G
100 PRINT"WELCHE BREITE UND LAENGE"
102 PRINT"GUT: 19x10 MAX: 66x66"
105 INPUT H,V
110 DIM W(H,V),V(H,V)
160 Q=0:Y=0:X=INT(RND(1)*H+1)
165 FOR I=X THEN 173
171 PRINT".-";:GOTO 180
173 PRINT". ";
180 NEXT I
190 PRINT"."
195 C=1:W(X,1)=C:C=C+1
200 R=X:S=1:GOTO 260
210 IF R<>H THEN 240
215 IF S<>V THEN 230
220 R=1:S=1:GOTO 250
230 R=1:S=S+1:GOTO 250
240 R=R+1
250 IF W(R,S)=0 THEN 210
260 IF R-1=0 THEN 530
265 IF W(R-1,S)<>0 THEN 530
270 IF S-1=0 THEN 390
280 IF W(R,S-1)<>0 THEN 390
290 IF R=H THEN 330
300 IF W(R+1,S)<>0 THEN 330
310 X=INT(RND(1)*3+1)
320 ON X GOTO 790,820,860
330 IF S<>V THEN 340
334 IF Y=1 THEN 370
338 Q=1:GOTO 350
340 IF W(R,S+1)<>0 THEN 370
350 X=INT(RND(1)*3+1)
360 ON X GOTO 790,820,910
370 X=INT(RND(1)*2+1)
380 ON X GOTO 790,820
390 IF R=H THEN 470
400 IF W(R+1,S)<>0 THEN 470
405 IF S<>V THEN 420
410 IF Z=1 THEN 450
415 Q=1:GOTO 430
420 IF W(R,S+1)<>0 THEN 450
430 X=INT(RND(1)*3+1)
440 ON X GOTO 790,860,910
450 X=INT(RND(1)*2+1)
460 ON X GOTO 790,860
470 IF S<>V THEN 490
480 IF Z=1 THEN 520
485 Q=1:GOTO 500
490 IF W(R,S+1)<>0 THEN 520
500 X=INT(RND(1)*2+1)
510 ON X GOTO 790,910
520 GOTO 790
530 IF S-1=0 THEN 670
540 IF W(R,S-1)<>0 THEN 670
545 IF R=H THEN 610
547 IF W(R+1,S)<>0 THEN 610
550 IF S<>V THEN 560
552 IF Z=1 THEN 590
554 Q=1:GOTO 570
560 IF W(R,S+1)<>0 THEN 590
570 X=INT(RND(1)*3+1)
580 ON X GOTO 820,860,910
590 X=INT(RND(1)*2+1)
600 ON X GOTO 820,860
610 IF S<>V THEN 630
620 IF Z=1 THEN 660
625 Q=1:GOTO 640
630 IF W(R,S+1)<>0 THEN 660
640 X=INT(RND(1)*2+1)
650 ON X GOTO 820,910
660 GOTO 820
670 IF R=H THEN 740
680 IF W(R+1,S)<>0 THEN 740
685 IF S<>V THEN 700
690 IF Z=1 THEN 730
695 Q=1:GOTO 830
700 IF W(R,S+1)<>0 THEN 730
710 X=INT(RND(1)*2+1)
720 ON X GOTO 860,910
730 GOTO 860
740 IF S<>V THEN 760
750 IF Z=1 THEN 780
755 Q=1:GOTO 770
760 IF W(R,S+1)<>0 THEN 780
770 GOTO 910
780 GOTO 1000
800 C=C+1:V(R-1,S)=2:R=R-1
810 IF C=H*V+1 THEN 1010
815 Q=0:GOTO 260
820 W(R,S-1)=C
830 C=C+1
840 V(R,S-1)=1:S=S-1:IF C=H*V+1 THEN 1010
850 Q=0:GOTO 260
860 W(R+1,S)=C
870 C=C+1:IF V(R,S)=0 THEN 880
875 V(R,S)=3:GOTO 890
880 V(R,S)=2
890 R=R+1
900 IF C=H*V+1 THEN 1010
905 GOTO 530
910 IF Q=1 THEN 960
920 W(R,S+1)=C:C=C+1:IF V(R,S)=0 THEN 940
930 V(R,S)=3:GOTO 950
940 V(R,S)=1
950 S=S+1:IF C=H*V+1 THEN 1010
955 GOTO 260
960 Z=1
970 IF V(R,S)=0 THEN 980
975 V(R,S)=3:Q=0:GOTO 1000
980 V(R,S)=1:Q=0:R=1:S=1:GOTO 250
1000 GOTO 210
1010 FOR J=1 TO V
1011 PRINT"I";
1012 FOR I=1 TO H
1013 IF V(I,J)<2 THEN 1030
1020 PRINT"  ";
1021 GOTO 1040
1030 PRINT" I";
1040 NEXT I
1041 PRINT
1043 FOR I=1 TO H
1045 IF V(I,J)=0 THEN 1060
1050 IF V(I,J)=2 THEN 1060
1051 PRINT": ";
1052 GOTO 1070
1060 PRINT":-";
1070 NEXT I
1071 PRINT"."
1072 NEXT J
1073 REM END
2000 IF G=0 THEN 2300
2010 GRAPHIC 1:REM GRAPHICBILDSCHIRM EINSCHALTEN
2020 SCNCLR:REM GRAPHICBILDSCHIRM LOESCHEN
2030 X=INT(300/H)
2040 Y=INT(180/V)
2050 FOR I=1 TO H
2060 IF W(I,1)=1 THEN 2080
2070 DRAW ,10+X*(I-1),10 TO 10+X*I,10
2080 NEXT I
2100 FOR J=1 TO V
2110 DRAW ,10,10+Y*(J-1) TO 10,10+Y*J
2120 FOR I=1 TO H
2130 IF V(I,J)=2 OR V(I,J)=3 THEN 2160
2140 REM RECHTE WAND
2150 DRAW ,10+X*I,10+Y*(J-1) TO 10+X*I,10+Y*J
2160 IF V(I,J)=1 OR V(I,J)=3 THEN 2190
2170 REM UNTERE WAND
2180 DRAW ,10+X*(I-1),10+Y*J TO 10+X*I,10+Y*J
2190 NEXT I
2200 NEXT J
2210 INPUT I
2220 GRAPHIC 0:REM GRAPHICBILDSCHIRM AUSSCHALTEN
2300 END


ein 60x60 Irrgarten

Teil 2: Free Pascal

Ich habe das Commodore-Basic-Programm in ein Free-Pascal-Programm umgewandelt.
Erhalten geblieben sind die unschönen Goto-Anweisungen, in Pascal mittels der label-Anweisung umgesetzt.
Das Programm ist unter Free Pascal viel schneller als in Basic.

das Basic-Programm erzeugt einen 90x90 Irrgarten
Pascal
program irrgraph;
uses Crt,Graph;
label
 173,180,190,210,230,240,250,260,330,340;
label
 350,370,390,420,430,450,470,490,500,520;
label
 530,560,570,590,610,630,640,660,670,700;
label
 730,740,760,770,780,790,820,830,860,880;
label
 890,910,940,950,960,980,1000,1010,1030,1040;
label
 1060,1070,2000,2080,2160,2190,2300;
const
 OG = 500;
 OG2 = 1000;
 OG3 = 750;
var
 W,V : array[1..OG,1..OG] of Longint;
 C,G,H,I,J,Q,R,S,VV,X,Y,Z : Longint;
 XX,YY : real;
 mode,treiber : integer;
 ss : String;
begin
randomize;
writeln('IRRGARTEN');
write('GRAPHISCH (0-NEIN, 1-JA)'); readln(G);
writeln('WELCHE BREITE UND LAENGE');
write('GUT: 19x10 MAX: 66x66');
readln(H,VV);
{ DIM W(H,V),V(H,V) }
Q:=0; Y:=0; X:=random(H)+1;
IF G=1 THEN GOTO 190;
FOR I:=1 TO H DO
begin
 IF I=X THEN GOTO 173;
 write('.-'); GOTO 180;
 173: write('. ');
 180: { }
end;
{ NEXT I }
writeln('.');
190: C:=1; W[X][1]:=C; C:=C+1;
R:=X; S:=1; GOTO 260;
210: IF R<>H THEN GOTO 240;
IF S<>VV THEN GOTO 230;
R:=1; S:=1; GOTO 250;
230: R:=1; S:=S+1; GOTO 250;
240: R:=R+1;
250: IF W[R][S]=0 THEN GOTO 210;
260: IF R-1=0 THEN GOTO 530;
IF W[R-1][S]<>0 THEN GOTO 530;
IF S-1=0 THEN GOTO 390;
IF W[R][S-1]<>0 THEN GOTO 390;
IF R=H THEN GOTO 330;
IF W[R+1][S]<>0 THEN GOTO 330;
X:=random(3)+1;
{ ON X GOTO 790,820,860 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 820;
IF X=3 THEN GOTO 860;
330: IF S<>VV THEN GOTO 340;
IF Y=1 THEN GOTO 370;
Q:=1; GOTO 350;
340: IF W[R][S+1]<>0 THEN GOTO 370;
350: X:=random(3)+1;
{ ON X GOTO 790,820,910 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 820;
IF X=3 THEN GOTO 910;
370: X:=random(2)+1;
{ ON X GOTO 790,820 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 820;
390: IF R=H THEN GOTO 470;
IF W[R+1][S]<>0 THEN GOTO 470;
IF S<>VV THEN GOTO 420;
IF Z=1 THEN GOTO 450;
Q:=1; GOTO 430;
420: IF W[R][S+1]<>0 THEN GOTO 450;
430: X:=random(3)+1;
{ ON X GOTO 790,860,910 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 860;
IF X=3 THEN GOTO 910;
450: X:=random(2)+1;
{ ON X GOTO 790,860 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 860;
470: IF S<>VV THEN GOTO 490;
IF Z=1 THEN GOTO 520;
Q:=1; GOTO 500;
490: IF W[R][S+1]<>0 THEN GOTO 520;
500: X:=random(2)+1;
{ ON X GOTO 790,910 }
IF X=1 THEN GOTO 790;
IF X=2 THEN GOTO 910;
520: GOTO 790;
530: IF S-1=0 THEN GOTO 670;
IF W[R][S-1]<>0 THEN GOTO 670;
IF R=H THEN GOTO 610;
IF W[R+1][S]<>0 THEN GOTO 610;
IF S<>VV THEN GOTO 560;
IF Z=1 THEN GOTO 590;
Q:=1; GOTO 570;
560: IF W[R][S+1]<>0 THEN GOTO 590;
570: X:=random(3)+1;
{ ON X GOTO 820,860,910 }
IF X=1 THEN GOTO 820;
IF X=2 THEN GOTO 860;
IF X=3 THEN GOTO 910;
590: X:=random(2)+1;
{ ON X GOTO 820,860 }
IF X=1 THEN GOTO 820;
IF X=2 THEN GOTO 860;
610: IF S<>VV THEN GOTO 630;
IF Z=1 THEN GOTO 660;
Q:=1; GOTO 640;
630: IF W[R][S+1]<>0 THEN GOTO 660;
640: X:=random(2)+1;
{ ON X GOTO 820,910 }
IF X=1 THEN GOTO 820;
IF X=2 THEN GOTO 910;
660: GOTO 820;
670: IF R=H THEN GOTO 740;
IF W[R+1][S]<>0 THEN GOTO 740;
IF S<>VV THEN GOTO 700;
IF Z=1 THEN GOTO 730;
Q:=1; GOTO 830;
700: IF W[R][S+1]<>0 THEN GOTO 730;
X:=random(2)+1;
{ ON X GOTO 860,910 }
IF X=1 THEN GOTO 860;
IF X=2 THEN GOTO 910;
730: GOTO 860;
740: IF S<>VV THEN GOTO 760;
IF Z=1 THEN GOTO 780;
Q:=1; GOTO 770;
760: IF W[R][S+1]<>0 THEN GOTO 780;
770: GOTO 910;
780: GOTO 1000;
790: W[R-1][S]:=C;
C:=C+1; V[R-1][S]:=2; R:=R-1;
IF C=H*VV+1 THEN GOTO 1010;
Q:=0; GOTO 260;
820: W[R][S-1]:=C;
830: C:=C+1;
V[R][S-1]:=1; S:=S-1; IF C=H*VV+1 THEN GOTO 1010;
Q:=0; GOTO 260;
860: W[R+1][S]:=C;
C:=C+1; IF V[R][S]=0 THEN GOTO 880;
V[R][S]:=3; GOTO 890;
880: V[R][S]:=2;
890: R:=R+1;
IF C=H*VV+1 THEN GOTO 1010;
GOTO 530;
910: IF Q=1 THEN GOTO 960;
W[R][S+1]:=C; C:=C+1; IF V[R][S]=0 THEN GOTO 940;
V[R][S]:=3; GOTO 950;
940: V[R][S]:=1;
950: S:=S+1; IF C=H*VV+1 THEN GOTO 1010;
GOTO 260;
960: Z:=1;
IF V[R][S]=0 THEN GOTO 980;
V[R][S]:=3; Q:=0; GOTO 1000;
980: V[R][S]:=1; Q:=0; R:=1; S:=1; GOTO 250;
1000: GOTO 210;
1010: IF G=1 THEN GOTO 2000;
FOR J:=1 TO VV DO
begin
 write('I');
 FOR I:=1 TO H DO
 begin
  IF V[I][J]<2 THEN GOTO 1030;
  write('  ');
  GOTO 1040;
  1030: write(' I');
  1040: { }
 end;
 { NEXT I }
 writeln;
 FOR I:=1 TO H DO
 begin
  IF V[I][J]=0 THEN GOTO 1060;
  IF V[I][J]=2 THEN GOTO 1060;
  write(': ');
  GOTO 1070;
  1060: write(':-');
  1070: { }
 end;
 { NEXT I }
 writeln('.');
end;
{ NEXT J }
{ REM END }
IF G=0 THEN GOTO 2300;
{ GRAPHIC 1; }
{ SCNCLR; }
2000: treiber := detect;
initgraph(treiber,mode,'');
XX:=1.0*OG2/H;
YY:=1.0*OG3/VV;
FOR I:=1 TO H DO
begin
 IF W[I][1]=1 THEN GOTO 2080;
 Line(10+round(XX*(I-1)),10,10+round(XX*I),10);
 2080: { }
end;
{ NEXT I }
FOR J:=1 TO VV DO
begin
 Line(10,10+round(YY*(J-1)),10,10+round(YY*J));
 FOR I:=1 TO H DO
 begin
  IF (V[I][J]=2) OR (V[I][J]=3) THEN GOTO 2160;
  { REM RECHTE WAND }
  Line (10+round(XX*I),10+round(YY*(J-1)),10+round(XX*I),10+round(YY*J));
  2160: IF (V[I][J]=1) OR (V[I][J]=3) THEN GOTO 2190;
  { REM UNTERE WAND }
  Line(10+round(XX*(I-1)),10+round(YY*J),10+round(XX*I),10+round(YY*J));
  2190: { }
 end;
 { NEXT I }
end;
{ NEXT J }
SS:='';
readln( SS);
{ GRAPHIC 0 }
closegraph;
2300: { END }
readln(SS);
end.
 


ein 120x120 Irrgarten erzeugt mit dem Free Pascal Programm

Abschluß

Das Basic Programm "IRR2.P00" und das Freepascalprogramm "IRRGRAPH2.PAS" stehen in meinem Notizbuch zum Download bereit.
Dazu auf das Notizbuch-Stäbchen in meinem Profil "Delastelle" klicken und dann auf den Klammeraffen.

Viel Spaß!

Viele Grüße
Ronald

\(\endgroup\)

Link auf diesen Artikel Link auf diesen Artikel  Druckbare Version Druckerfreundliche Version  Kommentare zeigen Kommentare  
pdfFür diesen Artikel gibt es keine pdf-Datei


Arbeitsgruppe Alexandria Dieser Artikel ist nicht im Verzeichnis der Arbeitsgruppe Alexandria eingetragen.
[Die Arbeitsgruppe Alexandria katalogisiert die Artikel auf dem Matheplaneten]

 
Verwandte Links
 
Besucherzähler 340


[Seitenanfang]

" Informatik: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal" | 7 Kommentare
 
Für den Inhalt der Kommentare sind die Verfasser verantwortlich.

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von cis am Mo. 08. Januar 2018 00:23:27

\(\begingroup\)
Oje, ich kriege Angst.
Könntest Du noch den Notizbucheintrag mit Programm verlinken?\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von PhysikRabe am Mo. 08. Januar 2018 09:25:01

\(\begingroup\)
Sehr schön, Ronald, gefällt mir gut! Ich bin gerade dabei meine alten Computer zu durchforsten. Vielleicht speise ich das Basic-Programm mal mittels SD2IEC in meinen C64 ein und spiele ein bisschen damit herum.

Gibt es eigentlich eine Möglichkeit, den (bzw. zumindest einen, falls es mehrere gibt) Weg durch den Irrgarten zu markieren? Gerade bei deinem Beispiel mit Free Pascal ist der Irrgarten so groß und verworren, dass es wohl lange dauern würde, nur durch Hinsehen einen Weg zu finden. wink\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von Stefan_K am Mo. 08. Januar 2018 15:37:16

\(\begingroup\)
Labyrinth erstellen in LaTeX mit TikZ und integriertem Lua, von Mark Wibrow, Ausgabe in Form eine farbigen Weihnachts-Baumes (etwas herunterscrollen für den Code): tex.co/a/149576/213 (Leicht krakelige Linien sind Absicht, damit es nicht so starr aussieht.)

Weihnachtsbaum-Labyrinth\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von Slash am Mo. 08. Januar 2018 16:53:17

\(\begingroup\)
Der Weihnachtsbaum ist ja wirklich spitze! Das Motiv für meine diesjährigen Weihnachtskarten. smile

Ich hatte zwar keinen C64 (zu teuer), aber einen SHARP MZ-800 mit 4-Farb-Plotter. Ein damit erstelltes Apfelmännchen habe ich noch. Das BASIC Programm dazu hatte aber mein älterer Bruder geschrieben. Ich konnte da noch nicht mit komplexen Zahlen umgehen. Ein eigenes Programm hatte ich dann mal später mit Delphi5 geschrieben.\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von Delastelle am Mo. 08. Januar 2018 20:48:55

\(\begingroup\)
Hallo,

schön, wenn die Programme Anklang finden. Für didaktische Zwecke sind sie aber eher nicht geeignet - dafür ist der Code zu unübersichtlich.

mein Notizbuch ist hier:
fav.php?uname=Delastelle

@PhysikRabe
der klassische Weg einen Pfad durch einen Irrgarten zu finden ist die kurzsichtige Maus.
Dabei läuft man an jeder Gabelung erst recht, dann gerade und dann links.
Falls es nicht weiter geht, geht man bis zur letzten Gabelung zurück.
So kann man den Pfad hindurch finden.

Viele Grüße
Ronald\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von PhysikRabe am Mo. 08. Januar 2018 21:36:34

\(\begingroup\)
@Ronald: Ja, diesen Weg kenne ich, aber das war nicht meine Frage. wink\(\endgroup\)

 [Bearbeiten]

Re: Ein 40 Jahre altes Irrgarten-Programm in Commodore Basic und Free Pascal
von Bernhard am Mo. 08. Januar 2018 23:39:13

\(\begingroup\)
Hallo!

der klassische Weg einen Pfad durch einen Irrgarten zu finden ist die kurzsichtige Maus.
Dabei läuft man an jeder Gabelung erst recht, dann gerade und dann links.
Falls es nicht weiter geht, geht man bis zur letzten Gabelung zurück.
So kann man den Pfad hindurch finden.

Ich kenne das in einer etwas anderen und - wie ich finde - einfacheren Beschreibung: Immer mit der rechten Hand an der Mauer/Zaun/Hecke entlang weitergehen.

Viele Grüße, Bernhard\(\endgroup\)

 [Bearbeiten]

 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2018 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]