Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - funktion manchmal klappts manchmal nicht ratlos warum
kdfssl - Do 19.03.09 20:47
Titel: funktion manchmal klappts manchmal nicht ratlos warum
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function wall_up (x:integer;y:integer):boolean; var i,h:integer; begin x:=x+1; for i:=1 to 2 do begin if ((x >= walls[i].x2) and (x <= walls[i].x3)) then begin if (y <= walls[i].y3) and (y >= walls[i].y2)then h:=1 end else result:=false; if h=1 then result:=true; end; end; |
Was ich damit machen wollte: Ich grenze mit dem Feld ein Bereich ab der sozusagen gesperrt ist, den man nicht betreten darf, und die Funktion liefert false, wenn der bereich den ich betreten will, in dem code abgegrenzten Bereich liegt.
Problem: manchmal klappt diese function aber manchmal auch nicht
Wenn ihr wollt zeig ich euch den gesamten quelltext.
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Xentar - Do 19.03.09 22:15
Du könntest damit anfangen, den Code vernünftig einzurücken, dass man sieht, welche Zeile zu welchem If gehört.
Danach:
Haltepunkt setzen (F5), Debugger benutzen..
Außerdem:
- Warum noch den Umweg über die Variable h? Warum nicht gleich das result auf true setzen?
- Hat das einen Grund, dass du bei der inneren if y3 und y2 vertauscht hast? Ich mein, im Vergleich zu den beiden X Werten.
Chemiker - Do 19.03.09 22:30
Hallo kdfssl,
Du hast h keinen Wert zugewiesen. Das bedeutet das wenn die IF-Abfrage nicht TRUE ist, h einen Zufallswert hat.
Bis bald Chemiker
BenBE - Fr 20.03.09 12:44
Irgendwie erinnert mich das an eine Diskussion, die ich grad vor paar Tagen erst selber wieder benötigt hab:
http://www.delphi-forum.de/viewtopic.php?t=83487
Ich denk mal, da sollte die Erklärung enthalten sein, die dir dieses "Mal klappt's" genauer erklärt, auch wenn's in der Diskussion speziell um Booleans geht.
P.S.: Es ist IMMER eine gute Idee, jegliche Warnungen des Compilers zu beheben, bevor man Programmverhaltensfehler sucht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!