-
Forum: Programmieren allgemein
by Matze,
15. Mai 2007
Hat mir evtl. noch irgend jemand Tipps?
Die genannten Vorschläge sind ja wirklich nicht schlecht, nur verstehe ich immer noch nicht, wie ich ermitteln kann, wo sich eine Lücke zum Futter ergibt. :duck: Es ist auch nicht so sehr wichtig, aber mich würde es interessieren, wie man so etwas genau umsetzen kann.
Grüße
-
Forum: Programmieren allgemein
by Matze,
13. Mai 2007
Hi,
Eigentlich geht's mir genau darum. :stupid:
Der kürzeste Weg wird bei mir generell berechnet, wenn nicht gerade eine Schlange den kompletten Weg zum Apfel abschneidet. Ist dies nicht der Fall, kriecht die andere Schlange einfach außen herum (wie bei dir der Punkt a). Und mein aktuelles Problem ist nun genau diese Berechnung für den Fall, dass der Apfel zu dem Zeitpunkt auf keiner...
-
Forum: Programmieren allgemein
by Matze,
13. Mai 2007
Hi,
danke. Ich kann momentan jedoch bereits genau ermitteln, ob es möglich ist ohne Kollision, zum Futter zu kommen (Das erledigt der A*-Algorithmus). Dein Vorschlag ist im Endeffekt nur dieser Algorithmus, wenn ich es richtig verstanden habe. Das Array sieht so aus, dass die Schlangen den Wert -1 haben und die restlichen Felder sind mit dem Wert gefüllt, der den Abstand zum Futter angibt.
...
-
Forum: Programmieren allgemein
by Matze,
11. Mai 2007
Das A*-Array besitzt doch bereits den Abstand zum Ende, da der Schlangenkopf die Länge der Schlange enthält und zum Ende hin immer um eines abnimmt. Das dann negativ und 1 abgezogen müsste das sein, was du meinst. Aber wieso sollte sich dadurch die potentielle Lücke ergeben?
Der größte Wert < -1 wäre dann eben immer kurz vorm Schwanzende. Irgendwas scheine ich noch nicht zu verstehen. :gruebel:
-
Forum: Programmieren allgemein
by Matze,
10. Mai 2007
Hi
Das klingt ja ganz schön komplex alles.
Ich müsste davor aber ermitteln, welche Schlangenteile überhaupt im Weg sind. Für mich langsam ein unlösbares Problem, diese KI. :gruebel:
-
Forum: Programmieren allgemein
by Matze,
10. Mai 2007
Hi, danke für die Antworten.
Völlig richtig, das wäre die schönste Methode. Nur ist das Problem, wie ich die Stelle ermitteln kann, an der der Ring aufbrechen wird. Ich müsste irgendwie ermitteln, an welcher Stelle sich der Ring schließt und die Wertigkeit des berührenden Schlangenstücks müsste die Anzahl an Schritten sein, bis es wieder einen Weg gibt.
Nur darf sich die Schlange nicht...
-
Forum: Programmieren allgemein
by Matze,
9. Mai 2007
Hi,
also irgendwie ist mir das zu hoch. Ich kann doch keine Fallunterscheidung durchführen. Der Algorithmus muss für beide (bzw. für alle) Beispiele funktionieren. :gruebel:
-
Forum: Programmieren allgemein
by Matze,
9. Mai 2007
Hi
Ich hatte den Anhang vergessen und ihn oben hinzugefügt. :oops:
Dennoch danke für deine Erklärung, doch damit lässt sich das aktuelle Problem wohl nicht lösen.
-
Forum: Programmieren allgemein
by Matze,
9. Mai 2007
Hi,
ok danke, das klingt ganz gut, doch ist es nun so, dass die Situation, die im Anhang zu finden ist, häufig auftritt. Im umschlossenen leeren Feld sind nun keinerlei Infos zur Entfernung zum Apfel enthalten. Ich weiß auch nicht einmal, wie ich überprüfen kann, ob sich die Schlange in solch einer Situation befindet, außer ich setze ein Limit für die Schleife des A*-Algorithmusses fest und...
-
Forum: Programmieren allgemein
by Matze,
8. Mai 2007
Hi,
das verstehe ich nun nicht ganz. Ich berechnet pro Schlangenzug das ganze Spielfeld mit A* neu. Daher dürfte es egal sein, in welcher Richtung ich den Algorithmus anwende, denke ich. Der von mir angesprochene Fall ist bisher noch nie aufgetreten, da sich irgendwo noch ein Bug befinden muss, den ich nicht entdecken kann. Aber das soll euch nicht weiter stören. ;) Diesen Spezialfall setze...
-
Forum: Programmieren allgemein
by Matze,
8. Mai 2007
Hm das klingt ja reichlich kompliziert, aber ich versuche mich mal. Herzlichen Dank!
-
Forum: Programmieren allgemein
by Matze,
8. Mai 2007
Hi,
ah, da hast du natürlich in allen Punkten vollkommen recht! Danke. :thumb:
Der Algorithmus an sich scheint nun zu funktionieren (Anhang 1), doch vermute ich, dass dieser unter bestimmten Umständen nicht brauchbar ist (Skizze im Anhang 2). Denn wenn ich mir diese Situation vorstelle, müssten alle Felder unterhalb der grünen Schlange 0 bleiben und somit kann die blaue Schlange nichts...
-
Forum: Programmieren allgemein
by Matze,
7. Mai 2007
Hi,
danke, doch das möchte ich erstmal selbst probieren. :)
Nur scheitere ich daran und ich finde absolut keinen Fehler. Wer Lust hat, kann mal schauen, ob er einen Fehler findet.
Noch ein paar Bemerkungen, die für das Verständnis beitragen:
map->map ist das Spielfeld-Array, das für die Ausgabe ausgewertet wird (Futter: -1, leere Felder: 0, Schlangen >= 1)
map->map_a_star ist das...
-
Forum: Programmieren allgemein
by Matze,
7. Mai 2007
Hui das klingt gut und muss ich gleich mal testen, vielen Dank! :)
Die Algorithmen, die ich mir alle angesehen habe, kamen mir irgendwie komplizierter vor.
-
Forum: Programmieren allgemein
by Matze,
7. Mai 2007
Hi,
was ich als Ergebnis brauche ich eigentlich nur die Richtung (hoch, runter, rechts, links), danach muss das wieder neu berechnet werden.
Aber ich kann mal schauen, ob ich eine rekursive Wegsuche hinbekomme, danke.
-
Forum: Programmieren allgemein
by Matze,
7. Mai 2007
Hi zusammen,
ich bin dabei in C++ einen Snake-Clon zu programmieren - bzw. dieser ist fertig - nur habe ich nun eine 2. Schlange, die computergesteuert ist, hinzugefügt. Da ich mich in C++ noch nicht sonderlich gut auskenne, prüfe ich zur Zeit, in welcher Richtung das Futter ist und laufe in diese, wenn keine Schlange im Weg ist (Das sind mit den ganzen Fallunterscheidungen rund 200 Zeilen...