type-eigenschaften
Übersicht

![]() |
ViddeBetreff: type-eigenschaften |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe folgendes problem: es sollen 10 autos im kreis fahren (mit unterschiedlicher geschwindigkeit). wenn das hintere auto schneller fährt als das davor, soll es zum unfall und somit zur änderung des kofferraum- und des motorraumwert kommen. (kettenreaktion durch auffahrunfall bitte nicht beachten - kreis ist groß genug).
jetzt weiß ich nicht genau wie das mit "After" und "Before" umsetzen soll. Code: [AUSKLAPPEN] SeedRnd MilliSecs()
Graphics 500,900 Type TAuto Field Schwackewert Field Kofferraum Field Motorraum Field Geschwindigkeit End Type Global Auto.TAuto For i = 1 To 10 Auto = New TAuto Auto\Schwackewert = 10000 Auto\Kofferraum = 500 Auto\Motorraum = 700 Auto\Geschwindigkeit = Rnd(0,50) Next For Auto.TAuto = Each TAuto Print Auto\Geschwindigkeit Print Auto\Kofferraum = Auto\Kofferraum - (Auto\Geschwindigkeit - After Auto\Geschwindigkeit) Print Auto\Motorraum = Auto\Motorraum - (Before Auto\Geschwindigkeit - Auto\Geschwindigkeit) Print "" Next |
||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstmal würde ich vorschlagen, du machst eine Konstante Anzahl_autos oder so.
Das müsste klappen: Code: [AUSKLAPPEN] Const anzahl_autos = 9 ;immer bei 0 anfangen ;-)
... dg = 0 ;durchgegangene Autos for t = each auto if dg = anzahl_autos-1 then exit ;Wenn alle Autos außer das letzte (-1) durchgegangen wurden, aufhören. ges1 = t\geschwindigkeit t = after t ges2 = t\geschwindigkeit t = before t if ges2 > ges1 then unfall() dg = dg + 1 next Code nicht getestet, sollte klappen. mfG |
||
![]() |
Vidde |
![]() Antworten mit Zitat ![]() |
---|---|---|
bekomme es noch nicht so hin wie gewünscht, aber trotzdem danke erst mal. | ||
Gern der Zeiten gedenk ich, als alle Glieder gelenkig - bis auf eins. Diese Zeiten kehren nie wieder, steif sind nun alle Glieder - bis auf eins. |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso nimmst du Types, wenn du schon vorher weißt, dass es genau 10 Autos sind?
Egal - falls die Koffer- und Motorraum-Werte als HP zu verstehen sind, würde ich es so machen: Code: [AUSKLAPPEN] SeedRnd MilliSecs()
Graphics 500,900 Type TAuto Field Schwackewert Field Kofferraum Field Motorraum Field Geschwindigkeit End Type Global Auto.TAuto Local i For i = 1 To 10 Auto = New TAuto Auto\Schwackewert = 10000 Auto\Kofferraum = 500 Auto\Motorraum = 700 Auto\Geschwindigkeit = Rnd(0,50) Next Local atemp.TAuto For Auto.TAuto = Each TAuto ;[Block] Kollisionsprüfung If First TAuto<>Last TAuto ; bei nur einem Auto kann man sich's schließlich sparen If Auto=Last TAuto Then atemp=First TAuto Else atemp=After Auto ; nächstes Auto im Kreis (fährt hinter dem aktuellen) If atemp\Geschwindigkeit > Auto\Geschwindigkeit Then Auto\Kofferraum = Auto\Kofferraum-(atemp\Geschwindigkeit-Auto\Geschwindigkeit) If Auto=First TAuto Then atemp=Last TAuto Else atemp=Before Auto ; voriges Auto im Kreis (fährt vor dem aktuellen) If Auto\Geschwindigkeit > atemp\Geschwindigkeit Then Auto\Motorraum = Auto\Motorraum-(Auto\Geschwindigkeit-atemp\Geschwindigkeit) End If ;[End Block] Print Auto\Geschwindigkeit Print Auto\Kofferraum Print Auto\Motorraum Print "" Next |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group