| Autor |
Beitrag |
deepdragon
Hält's aus hier
Beiträge: 4
|
Verfasst: Do 07.06.07 16:59
Hi Leute!
Ich habe mich extra hier angemeldet, weil ich ein Problem mit meiner Ampel-Simulation habe... Wir machen jeder in Info ein Projekt und ich mache halt die Ampel. Das erste hat schon gut geklappt, aber jetzt habe ich eine zweite Situation gemacht, in der man eine Straße hat, die man mit einem Zebrastreifen überqueren kann... Ich habe keine Fußgänger oder Autos eingefügt, weil ich ertens gar nicht weiß, wie ich das machen kann, und zweitens das auch nicht so wichtig ist... Jedenfalls kann man die Fußgängerampel drücken und dann sollte die Autoampel rot werden und die Fußgängerampel auf grün schalten... Das alles funktioniert bis zu dem Punkt, dass die Auto-Ampel auf rot schaltet und dann die Fußgängerampel auf grün schaltet... dann gehts aber nicht mehr weiter, obwohl ich den Rest auch schon programmiert habe... Also muss da doch wohl ein Fehler sein...
Es wäre wirklich lieb, wenn ihr euch das Prog. kurz mal angucken könntet und vielleicht nach dem Fehler suchen würdet... Ich finde wirklich keinen und weiß nicht mehr weiter. Wir haben nur noch bis Mitte Juni Zeit dafür....
Vielen Dank schon mal im vorraus,
Deepdragon
P.S.:
Das wäre noch wichtig:
Ich weiß, dass das Programm ziemlich kompliziert wirkt, auf den ersten Blick, vor allem wegen der Bezeichnung der einzelnen Shapes, aber ich will sie einfach mal für euch erklären, damit ihr wisst, was ihr damit anfangen müsst^^
ARL heißt AmpelRotLinks... mit Ampel meine ich die beiden AutoAmpeln... Mit Rot eben die Farbe und mit Links, dass es die auf der linken Seite des Zebrastreifens ist... ARR heißt dann logischerweise AmpelRotRechts...
FRL heißt FußgängerampelRotLinks... also steht das F für Fußgängerampel und R wieder für Rot und L für Links, also auf der linken Seite des Zebrastreifens...
G = Gelb
GR = Grün
R = Rot
A = Autoampel
F = Fußgängerampel
L = Links
R = Rechts
So... wenn jetzt noch fragen sind, dann einfach fragen^^ 
Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 07.06.07 18:29
Moin und  im Forum!
deepdragon hat folgendes geschrieben: | | Ich weiß, dass das Programm ziemlich kompliziert wirkt, auf den ersten Blick |
Das liegt unter anderem auch daran, dass du das Projekt prozedural bzw. imperativ angegangen bist, statt ereignisorientiert als Zustandsautomat. Hier kannst du etwas über diese Technik nachlesen. Und hier ist ein Beispiel für eine Ampelsteuerung als Zustandsautomat. Vielleicht kommst du damit ja schon weiter.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Do 07.06.07 20:25
Also, ich hab mir dein Projekt mal ein bisschen angeschaut und halbwegs verstanden, das Problem ist folgendes:
Du lässt alle Timer einfach weiterlaufen, sodass sich ihre Ereignisse gegenseitig aufheben, du musst bei einem Timer, wenn er nicht mehr gebraucht wird, die Eigenschaft enabled auf false setzen, sonst sind seine If-Abfragen irgendwann erfüllt und er bringt das ganze System durcheinander.
|
|
deepdragon 
Hält's aus hier
Beiträge: 4
|
Verfasst: Fr 08.06.07 16:21
Jann1k hat folgendes geschrieben: | Also, ich hab mir dein Projekt mal ein bisschen angeschaut und halbwegs verstanden, das Problem ist folgendes:
Du lässt alle Timer einfach weiterlaufen, sodass sich ihre Ereignisse gegenseitig aufheben, du musst bei einem Timer, wenn er nicht mehr gebraucht wird, die Eigenschaft enabled auf false setzen, sonst sind seine If-Abfragen irgendwann erfüllt und er bringt das ganze System durcheinander. |
oh man^^ wie dumm... da hätte ich echt auch selbst drauf kommen können^^ hehe...
naja ich habs jetzt geändert und jetzt funktionierts... Vielen Dank für eure Hilfe
Das fast fertige Programm könnt ihr unten downloaden...
Fast fertig deshalb, weil ich jetzt noch ein drittes Formular einbinde, das dann durch den Button, der auf dem zweiten Formular schon zu sehen ist, aber noch nicht zu klicken ist ('Einfache Kreuzung'), geöffnet wird... Dort werde ich eine einfache Kreuzung machen... also nicht groß mit Autos oder sonstwas... einfach nur eine Kreuzung, auf der sowohl Fußgängerampeln und Auto-Ampeln sind, jedoch kein Links und Rechtsverkehr herrscht... sonst wirds mir zu kompliziert...
viel Spaß beim betrachten des fertigen Projekts^^ *gg*
Deepdragon
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von deepdragon am Fr 08.06.07 19:38, insgesamt 1-mal bearbeitet
|
|
hanibal
      
Beiträge: 157
Win xp
d7 eterprise
|
Verfasst: Fr 08.06.07 17:15
der button einfache kreuzung funzt nicht. der steht da bei der fusgänger ampel. kann aber auch an wine liegen, ich benutze keine microsoft produkte mehr, wei sie erheblich schlechter sind, als die GRATIS linux geschichten.
|
|
deepdragon 
Hält's aus hier
Beiträge: 4
|
Verfasst: Fr 08.06.07 19:37
hanibal hat folgendes geschrieben: | | der button einfache kreuzung funzt nicht. der steht da bei der fusgänger ampel. kann aber auch an wine liegen, ich benutze keine microsoft produkte mehr, wei sie erheblich schlechter sind, als die GRATIS linux geschichten. |
nene^^ hehe... das stimmt schon alles so... du hast mich wohl falsch verstanden... oder hab ich mich falsch ausgedrückt???^^ Ich wollte sagen, dass ich als nächstes das dritte Formular mit der Kreuzung machen werde und das dann mit dem Button Einfache Kreuzung auf dem zweiten Formular geöffnet werden kann... Aber das ist noch nicht gemacht^^ hehe also kann da auch gar nichts kommen, wenn du auf den Button klickst... Das soll schon so sein, also keine Angst, mit deinem PC ist alles in Ordnung^^
Bis dann,
Deepdragon 
|
|
oldmax
      
Beiträge: 380
D3 Prof, D4 Prof
|
Verfasst: So 10.06.07 11:59
Hi
Könnt es vielleicht sein, das du bereits in der DP nach Hilfe gefragt hast und dort auch schon ganz gute Hilfe bekommen hast ?
Solltest vielleicht doch mal die Antworten ernst nehmen..
Gruß oldmax
_________________ Zier dich nich so, ich krieg dich schon....
|
|
deepdragon 
Hält's aus hier
Beiträge: 4
|
Verfasst: Mo 11.06.07 20:14
oldmax hat folgendes geschrieben: | Hi
Könnt es vielleicht sein, das du bereits in der DP nach Hilfe gefragt hast und dort auch schon ganz gute Hilfe bekommen hast ?
Solltest vielleicht doch mal die Antworten ernst nehmen..
Gruß oldmax |
ja das stimmt ja auch, aber ich habe mich nur hier angemeldet, weil mir im Delphi-Praxis Forum lange Zeit keiner geantwortet hat... Ich habe eine Frage geäußert und das Thema ist weiter runter gesackt und wurde nicht beachtet... deshalb habe ich mich zusätzlich noch hier angemeldet... und hier hat mir dann auch gleich einer geholfen, bzw. komischerweise ist genau dann auch einer im DP forum darauf aufmerksam geworden, sodass ich von beiden Seiten die Lösung meines Problems bekommen habe... Das konnte ich ja nicht wissen, dass mir einer hilft, also habe ich mich hier eben auch angemeldet...
naja also nicht denken, dass ich das alles nicht ernst nehmen würde... und es ist halt auch so, dass ich nicht so gut in delphi bin wie vielleicht einer von euch... und manchmal verstehe ich auch das, was ihr redet nicht so ganz... Das ist bei vielem aus dem Delphi-Praxis Forum so gewesen... Außerdem möchte ich das ganze auch nicht so kompliziert bzw. so gestalten, dass die Lehrerin sofort weiß, dass ich das nicht alleine gemacht habe... Denn klar dürfen wir Delphi voll auskosten, aber ich will dann doch eher bei den Sachen bleiben, die wir mehr oder weniger im Unterricht gemacht haben... Und den Timer bspw. haben wir auch noch nicht im Unterricht gehabt und ich habe ihn dann ins Projekt reingemacht... Ich danke euch natürlich für eure Hilfe, denn dadurch habe ich das Programm letztendlich zum laufen gebracht, bzw. die Fehler ausgemerzt... Aber wenn ihr mir dann Stücke vom Source Code gebt und kurz was zu schreibt, verstehe ich natürlich nicht so ganz, wie ich es dann ins fertige Prg. übernehmen soll...  Tut mir leid... Aber ich habe übrigens deine (Oldmax) Antwort im DP-Forum gelesen und habe mir auch Gedanken drüber gemacht... Nur will ich das lieber doch so machen, wie bisher, also das mit der Kreuzung... Auch wenn es noch unübersichtlicher wird, solange ich den Überblick behalte, es der Klasse mitteilen kann, was da passiert, und es am Ende noch alles läuft, ist es erstmal in Ordnung... Ich habe auch erst seit einem dreiviertel Jahr (naja gut, seid einem ganzen Jahr^^) Delphi in der Schule... und wir haben noch nicht soo viel gelernt... also natürlich die Schleifen, If- und Case-Bedingungen, Caesar-Verschlüsselung und so weiter... Aber eben noch nicht so komplexe Sachen wie von denen ihr im Forum manchmal redet... Tut mir echt leid, aber ich blicke oft nicht durch und will euch auch nicht damit nerven, wenn ich es nicht verstehe, da ihr es mir dann schon ausführlich erklären müsstet und ihr dazu sicher keine Lust hättet... Außerdem habe ich ja vieles schon alleine auf die Beine gestellt und nur gefragt, wenn ich große Probleme hatte und selbst nicht mehr weiter wusste... und ich habe auch so schon viel von euch gelernt, z.b. dass man Timer auch ausschalten muss, wenn sie nicht mehr gebraucht werden^^ *gg*
Also bis dann,
Deepdragon
und noch mal: es war nicht böse gemeint oder so, dass ich halt hier und im DP-Forum das selbe Problem gepostet habe... 
|
|
oldmax
      
Beiträge: 380
D3 Prof, D4 Prof
|
Verfasst: Di 12.06.07 05:29
Hi
Ist schon ok, wenn du hilfe suchst. Auch ist das mit dem Verstehen verständlich, setzt ein Programmierer doch oft zu hoch an. Deshalb hab ich auch versucht, dir weniger ein Programm zu liefern, sondern den Weg, um eine Lösung zu finden. Das Werkzeug hast du bereits. Nun ist's an dir, den Hammer für Nägel und den Schrauber für Schrauben einzusetzen, wenn du verstehst, was ich meine. Letztlich, und das ist auch völlig richtig, soll in der Schule doch deine Lösung stehen und nicht eine Kopie, deren Funktion du noch nicht einmal verstanden hast.
Ich wünsch dir mit oder ohne meine Tipps zur Umsetzung viel Erfolg und eine gute Note.
Gruß oldmax
_________________ Zier dich nich so, ich krieg dich schon....
|
|
|