http://www.leo.org/information/freizeit/fun/pascal.html
Lang lebe FORTRAN!
LG Rolf
http://www.leo.org/information/freizeit/fun/pascal.html
Lang lebe FORTRAN!
LG Rolf
Sind Sie auch ambivalent?
Vielen dank für eure Antworten...
hab den code jetzt so ...
if(obstacle_right) //Hinderniss rechts//
{
move(40, BWD, DIST_MM(20), true);
rotate(40, LEFT, 10, true);
moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
A:
if(!obstacle_right)
{
move(40, BWD, DIST_MM(10), true);
rotate(40, LEFT, 5, true);
move(40, FWD, DIST_MM(10), true);
moveAtSpeed(80,80);
}
else
{
goto A;
}
}
irgendwas klappt aber no ned so ganz....
schonmal danke....
Sag ich doch, dass Du kein sinnvolles Goto brauchen wirstAußer in Assembler habe ich das bisher auch noch nie benötigt.
Das GOTO in Deinem Code hat eigentlich nur einen Zweck: es macht den Code schwerer nachvollziehbar. Mehr nicht.
Tip: Immer beschreiben, was genau nicht geht und was der Code machen soll. In dem Fall können wir das zwar erraten, aber das ist nicht immer so.irgendwas klappt aber no ned so ganz....
Schau Dir mal die Demoprogramme des RP6 an, da sind schon einige gute Lösungen, um Hindernisse zu umfahren. Besonders zu empfehlen ist das "Move_05"-Beispiel,
das bietet Dir schon einmal eine Grundarchitektur, um verschiedene Verhaltensmuster umzusetzen.
Grüße,
Max
Mensch ja, er baut ein Goto ein...wo ist das problem dabei, außer das er nicht weiß wo es hin geschreiben werden muß...
Jetzt sind zwanzig Zeilen ja soooo unglaublich schwer zu lesen...man man man man
Er hat nach einer Sprunganweisung gefragt: GOTO ist eine "erlaubte" Sprunganweisung. <- Punkt
Mit dein Goto hast du ein Art von Endloss--Schleife eingebaut.
Sag mal das obstacle_right stimmt (den Wert, oder was es auch ist, ist nicht 0):
obstacle_right=1;
resultiert in die Ablauffolge:
move(40, BWD, DIST_MM(20), true);
rotate(40, LEFT, 10, true);
moveAtSpeed(80,80); //drehen bis kein Hinderniss mehr zu sehen
A:
if(!obstacle_right) // wird passiert weil obstacle_right ist Wahr)
goto A;
if(!obstacle_right) // wird wieder passiert weil es immer noch nicht ist geändert
goto A;
....
ad infinitem
Tu mir nen gefallen und werf dieses abgrundkaputte goto da raus...
So geht das!
while(!obstacle_right)
{
move(40, BWD, DIST_MM(10), true);
rotate(40, LEFT, 5, true);
move(40, FWD, DIST_MM(10), true);
moveAtSpeed(80,80);
}
Nicht nur GOTOs gehören verboten, auch jedes 2.te IF ist ranzig!
Und die anderen gucken sich den Schrott da oben bitte nicht ab... das is bah bah bah !
Da fühl ich mich an die gruseligen Zeit vom VC20, ZX81 und Apple 2 erinnert... ja.. es gab auch vor dem C64 schon Computer!
(Und Leute die aus solchen Fehlern lernten)
LG Rolf
Geändert von RolfD (16.10.2012 um 19:32 Uhr)
Sind Sie auch ambivalent?
Was heißt hier "gruselige Zeiten"??? Sag nichts gegen meinen alten Apple ][ !!!Da fühl ich mich an die gruseligen Zeit vom VC20, ZX81 und Apple 2 erinnert...
Ich habe ihn geliebt!![]()
Gruß
Dirk
Lesezeichen