Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Problem:
Also folgendes...Das Programm basiert auf nem alten TPascal(7) Code und simuliert das Ausbreiten von verschieden ALife-Stämmen. Schon unter TPascal ist das Programm ab und zu einfach eingefroren... Ich hatte es damals geschaft den Fehler bis in die Kampfprocedure zurückzuverfolgen allerdings kam ich dann nicht weiter...Soll heißen: Keine Ahnung wo der Fehler liegt. Könnt ihr euch das Programm mal angucken (wenn ihr Zeit habt...Ist kein wichtiges Projekt).
Zum Programm:
5 verschiedene Org. werden auf einer Karte ausgesetzt. Jeder Organismus verfügt über Eigenschaften (z.B Gehirn, Geschw, Kraft...) die sich teilweise auch gegenseitig beeinflussen (Je mehr Panzer desto langsamer). Je nachdem welche Eigenschaften wie stark ausgeprägt sind verbrauchen die Org. entspr. viel Energie. Die Org. erzeugen einen Nachfahren (mit min. Mutationen). Dann sucht sich dieser ein neues Feld. Reicht die Energie für ihn dort aus kämpft er mit dem Besitzer um das Revier. Es gibt Wasser, Land und Küsten Gebiete.
Land: Landlebewesen und Amphibien
Küste: alles
Wasser: Wasserlebewesen und Amphibien
Amphibien sind am schwächsten, aber auch die einzige möglichkeit für den Stamm vom Land ins Wasser und umgekehrt zu kommen.
Aber seht selbst....
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Zuletzt geändert von Flash am Di Okt 14, 2003 12:31, insgesamt 1-mal geändert.
Hast Du schonmal was von Source-Code Formatierung gehört? Bei so einem unübersichtlichen Source schleichen sich leicht mal fehler ein, die man dann nur sehr, sehr schwer findert...
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Da kann ich SchodMC nur zustimmen die Quellen sehen furchtbar aus.
Aber zu deinem Fehler. Ich weiß nicht genau was man tun muss um den Fehler zu beseitigen deswegen hier nur die Beschreibung wo sich der Fehler ereignet.
Wie du schon herausgefunden hast tritt der Fehler in der Procedure Kamp auf. Zeile 182 bis 202. Es bleibt deswegen hängen, weil der Angreifer und der Verteidiger jeweils kein Gehirn, keine Kraft und keine geschww haben. Wenn du 3 * 0 von irgenetwas abziehst verändert sich nichts! Und wenn du dann darauf wartest, dass ein Wert kleiner 0 wird dann dauert das schon mal eine Weile. Ich schätze mal, dass der Fehler allerdings woanders liegen wird! Und zwar schau dir mal deine Initialisierung der Felder an. Also da wo du die Organismen erstellst. Da müsste irgendwie was nicht klappen.
Ich hoffe das hat dir ein wenig geholfen.
PS: Anderfalls kannst du auch innerhalb der Schleife eine Sicherheit einbauen. Und zwar wenn die Wert 0 sind, dass du dann mit einem Minimum von 1 rechnest. So bleibt es zwar nicht mehr hängen aber das Ergebniss dürfte auch nicht mehr so 100%tig stimmen.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Da sag ich DANKE! Das guck ich mir gleich mal an...
Zur Codeformatierung: Das ist ein alter Code den ich vor nem Jahr o.ä. geschrieben hatte und jetzt hab ich nur die Ausgabe geändert... Die Formatierung is normalerweise bei mir recht übersichtlich...(na ja is eh subjektiv)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
So der Fehler is raus und die Datei im Anhang aktualisiert....
Neues Problemchen:
Euch sind bei der Ausgabe sicherlich das graue und das weiße Block aufgefallen. Diese markieren die höchste und die niedrichste Säule.
Leider stehen die Blöcke nicht mehr über den richtigen Säulen sobald diese eine Bestimmte höhe erreichten.
z.B. Der Org. hat die Gen. 230 -> 23 Einheiten hohe Säule. Der Weiße Block steht aber über einer Säule der 87. Generation. Die Daten die unter dem Bild ausgegeben werden sind entsprechend auch die der kürzeren Säule.
Ich kann mir das nicht erklären. Die Generation sind vom Typ Integer, haben also damit genug Spielraum...
Habt ihr ne Idee?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Sa Jan 04, 2003 21:23 Beiträge: 674 Wohnort: Köln
ein Wort zum Thema Codeformatierung:
wenn du es selber nicht für nötig hälst deinen Code zu formatieren und dadurch keine Schwierigkeiten bekommst ist das Ok...
aber bevor du es hochlädst könntest du den Code durch ein Tool, wie z.B. JediCodeFormat durchlaufen lassen, welches den Quelltext richtig (Style Guide) formatiert ...
EDIT: evtl. könnte man sowas in der Art auch in den FAQ's oder anderswo veröffentlichen, damit unformatierte Quelltext nicht mehr vorkommen...
steht zwar in einigen Tutorials, das man den formatieren soll, aber das es extra Codeformatierer gibt macht es wohl dem einen oder anderen leichter, der normalerweise seine Codes nicht formatiert... (auch wenn ich davon nichts halte...
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.