AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 14:17

Parameter dieser Suchanfrage:

Suche in Thema: Welcher Algorithmus für eine Snake-KI?
Suche alle Beiträge, die von "Sidorion" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 11 von insges. 11 Treffern
Suche benötigte 0.006s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 11. Mai 2007
    Nö. Du kannst ja beim A* initialisieren, da wo Du die Schlangen einzeichnest für jedes Teil den Abstand zum Ende eintragen (negativ mit offset, da ja 'Wand'=-1 und Entfernungen positiv). Damit ist der größte Wert <-1 die potentielle Lücke. Ausserdem erleichterst Du Dir dadurch das 'Entfernen' des letzten Schlangenstücks bei jedem A* Durchlauf, indem Du einfach alle Zahlen <-2 um eins erhöhst und...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 10. Mai 2007
    Nein Du ermittelst einfach für jedes Feld am Rand, wie lange es dauern wird, bis es nichtmehr besetzt ist. Also für feste Wände unendlich(-1), für Schlangenteile Abstand zum hinteren Ende (der jeweiligen Schlange). Das Feld mit dem niedrigsten positiven Wert ist die (zukünftige) Lücke. Jetzt füllst Du die A* Map, als wäre das Futter an diesem Feld. Wenn Du damit fertig bist, lässt Du die Schlange...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 10. Mai 2007
    Hab gestern nochmal drüber nachgedacht. Du musst die Stelle finden, an der der Ring aufbrechen wird (weil der nachgezogene Schwanz irgendwann so weit vorrückt, dass eine Lücke entsteht). An dieser Stelle muss die Schlange dann rauskriechen. Wenn Du den Punkt hast, machst Du einen A* zu diesem Punkt und gehst dann aber mit dem Kopf in die Richtung weiter, die den größten Wert (also den längeren...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 9. Mai 2007
    Nein Du versuchst erst den ersten. Wenn der klappt, dann kann die Schlange zum Apfel und verfolgt dieses Ziel. Wenn nicht kann die Schlange auch nicht zum Apfel und verfolgt die Überlebensstrategie. Hierzu muss ich aber nochmal nachdenken, weil das klappt so nicht, da die Werte ja immer wieder überschrieben werden.
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 9. Mai 2007
    Na SnakeBloed schon, denn da wird ja irgendwann ein Weg frei (wenn Dus so machst wie ich gesagt habe mit dem entfernen des letzen Gliedes vom Kopf aus).
    SnakeDumm löst man, indem man A* vom Kopf aus anfängt und den Nachbarn überschreibt, wenn der neue Wert größer dem alten ist. Ist man fertig mit A* (keine Änderung mehr) geht man wieder Richtung kleinster Nachbar vom Kopf aus. Dadurch...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 9. Mai 2007
    Ich gehe mal davon aus, wir reden vom Fehler jpeg und die KI steuert die blaue schlange.
    Dann sieht der A* so aus:
    in Schritt 0 (aktuelle Situation) kann die blaue Schlange nicht zum Apfel. Trotzdem fangen wir an.
    Wir schreiben also in alle Nachbarn des Schlangenkopfes eine 1. Jetzt bewegt sich die grüne ein Feld vorwärts und damit wird das Feld 0,7 frei (und Blue kann zum Apfel). Dieses...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 9. Mai 2007
    Folgendes: Je Schritt in der A* berechnung vergeht doch ein Spielzug (wenn schlange vom futter 4 weg ist, braucht sie 4 Züge um hinzukommen). Jetzt kannst Du also in jedem Schritt die Karte dahingehend anpassen, dass Du das jeweils letzte Feld jeder Schlange als begehbar markierst (Die Schlange ist ja ein Feld weitergekrochen). Damit ergibt sich dann plötzlich doch ein Weg bei Deinem Fehlerbild....
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 8. Mai 2007
    Ich hab da nochmal drüber nachgedacht.. Du musst den A* 'rückwärts' anwenden.
    Du gehst quasi vom Schlangenkopf zum Futter und löschst in jedem Schleifendurchlauf das letzte Glied jeder Schlange aus der A* map. Dadurch wird das Weiterkriechen der Schlangen simuliert und bei der Pfadsuche wird das dann berücksichtigt.
    Einziges Problem ist nun, dass Du in Deiner A*-Map den Weg vom Futter zur...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 8. Mai 2007
    Zunächst sollte man noch eine weitere Abbruchbedingung einführen: konnte kein Nachbar mit n+1 besetzt werden, dann muss die Schlefe abbrechen. Einfach bei jedem Schleifendurchgang einen Boolean auf false setzen. Beim Setzen eines Nachbarn wird der dann auf true gesetzt.

    Zudem hast Du in dieser Situatin zwei Möglichkeiten: 1. die blaue Schlange verfällt in einen Sicherheitsmodus, in dem sie...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 8. Mai 2007
    Aufgefallen ist mir nur, dass Du bei allen Prüfungen der umliegenden Felder auf >0 und <Feldbreite/Höhe prüfst. Dies erscheint mir unlogisch, da das Array entweder von 0 bis Felbreite-1 oder von 1 bis Feldbreite geht. D.h. Du hast eigentlich Feldbreite+1.

    Wenn Du beim A* Map initialisieren das Futterfeld auch mit -1 belegst kannst Du Dir die ganzen (!IsFoodFoield..) sparen.

    Du füllst in...
  • Forum: Programmieren allgemein

    Re: Welcher Algorithmus für eine Snake-KI?

     
      by Sidorion, 7. Mai 2007
    Also für diese Anwendung ist wohl A* die effektivste Methode.
    Das Prinzip ist einfach:
    Du nimmst ein 2D-Array von der Größe Deiner Karte.
    Dieses füllst Du erstmal mit Nullen.
    Danach schreibst Du in jede Zelle wo Wand oder Schlange ist eine -1 rein.
    Jetzt wird in die Nachbarn der Nahrung je eine 1 reingeschrieben (ausser Wert=-1).
    Dann wird eine Schleife gestartet (ab n=1):
    Für jede...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Sidorion&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=91572
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz