![]() |
Fussball KI,wie anfangen?
Hallo,
ich programmier ja schon seit einiger Zeit ein Browsergame bei welchem man per Java-Applet eine 2D Simulation anschauen können soll. Jetzt habe ich mein Applet soweit, dass ein Match-Objekt als XML in die Datenbank gespeichert wird usw und jetzt möchte ich anfangen ne gescheite KI zu programmieren. Wie geht man sowas am besten an? Also konkrekt habe ich folgende Ausgangssituation: 1 Ball 2 Teams a 5 Spieler Jeder Spieler hat ne x/y-Koordinate als "Startposition" keine Torhüter dafür kleinere Tore aufs Tor geschossen werden darf erst im Strafraum(mal schaun ob das bleibt) Fouls gibts erstmal nicht, entweder man gewinnt oder verliert einen Zweikampf Spieler haben unterschiedliche Attribute wie Schnelligkeit, Zweikampf, Schusskraft usw. Also wie fang ich jetzt an ne KI zu programmieren? Wie leg ich fest wo Spieler am besten hinlaufen? Mir fehlt irgendwie der Ansatz wie man so ne Logik entwickelt. Hat mir jemand nen Rat? |
AW: Fussball KI,wie anfangen?
Hallo, ich hatte mal vor langer Zeit im Internet eine Open-Source Fussball KI gefunden. Bin mir nicht ganz sicher ob ich das hier posten darf, deswegen schicke ich dir das später mal per PM. Muss das noch suchen :stupid:
|
AW: Fussball KI,wie anfangen?
Ich hab mich selber damit nicht so richtig auseinandergesetzt aber wie wäre denn diese Idee hier:
Du nimmst alle Felder her, und gibt ihnen einen Wert -- der Wert gibt dann an, ob man sich diesem Feld nähern sollte. Den Wert berechnest du so, indem du alle gegnerischen Spieler durchiterierst, ihre Position zum Feld hernimmst und das umgeben Feld eben, je näher zum Spieler, mit einem desto schlechteren Wert bestückst. Und damit das ganze nicht chaotisch von statten geht, sorgst du dafür, dass das Team (eigene Spieler) sich in eine bestimmte Richtung unter bestimmten Vorraussetzungen (Verteidigen/Angreifen/Position halten/..) bewegt... Ist schwer zum Erklären; aber wenn du das Grundprinzip verstehst, dann hab ichs geschafft, es dir richtig zu erläutern. Die Frage, ob es sinnvoll und nützlich ist, bleibt jedoch weiterhin offen... MfG |
AW: Fussball KI,wie anfangen?
Ich will dich nicht entmutigen, aber solltest du noch nie eine KI geschrieben haben, rate ich dir erst mal ein KI für TicTacToe zu schreiben. Eine KI für ein Fußballspiel dürfte alles andere als trivila sein, wenn sie einigermaßen realistisch sein soll.
|
AW: Fussball KI,wie anfangen?
Also du meinst,dass ich das Spielfeld in viele kleine Felder zB ein raster 5x7 unterteile und wenn sich Ball/Gegner in einem bestimmten Feld befinden bewegt man sich dahin, wenn das eigene Team den Ball hat laufen die Spieler sich frei,d.h. dass die Passwege zum Ballführenden Spieler frei sind?
Muss ich mal überlegen entweder ich unterteils in Felder oder geh über die x-/y-Abstände Ich hab momentan ein Spielfeld mit 600x400 Pixel. |
AW: Fussball KI,wie anfangen?
Hi,
ich würde dir raten, deine KI unabhängig von der grafischen Repräsentation zu halten. LG, Frederic |
AW: Fussball KI,wie anfangen?
Eventuell hilft es, mal auf einem Blatt Papier "zu Spielen" (gegen einen anderen Menschen, zufälliges auswürfeln, Spiel irgendwie aufnehmen) und dir nachher (oder dabei) zu überlegen, was du warum gemacht hast.
|
AW: Fussball KI,wie anfangen?
Zitat:
Abgespeichert werden nur die Ausgangswerte zusammen mit einem Randomseed. Ich hab das schonmal getestet, da kommt dann auch immer das gleiche Ergebnis und der gleiche Spielverlauf raus. Zitat:
|
AW: Fussball KI,wie anfangen?
Hi,
wäre es nicht besser, die grafische Ausgabe auf Basis der Berechnungen des nicht-grafischen Laufes zu generieren anstatt es doppelt zu berechnen? LG, Frederic |
AW: Fussball KI,wie anfangen?
Dann bekomm ich aber ein kleines Speicherproblem,weil ich quasi jeden Schritt speichern müsste.
So kann ich nur den Anfangszustand speichern was vielleicht 1,5KB in der Datenbank belegt(was immernoch genug ist) Und da die zweite Berechnung in nem Java-Applet also auf dem Client geschieht belastet sie meinen Server ohnehin nicht. Ich muss natürlich die Appletversion mitspeichern für den Fall, dass sich mal was an der Berechnung ändert, aber das ist ein eher kleines Problem. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz