Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fussball KI,wie anfangen? (https://www.delphipraxis.net/156368-fussball-ki-wie-anfangen.html)

Angel4585 29. Nov 2010 20:12

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?

lbccaleb 29. Nov 2010 20:24

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:

Aphton 29. Nov 2010 20:29

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

Luckie 29. Nov 2010 20:32

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.

Angel4585 29. Nov 2010 20:33

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.

fkerber 29. Nov 2010 23:15

AW: Fussball KI,wie anfangen?
 
Hi,

ich würde dir raten, deine KI unabhängig von der grafischen Repräsentation zu halten.


LG, Frederic

BUG 30. Nov 2010 00:04

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.

Angel4585 30. Nov 2010 05:44

AW: Fussball KI,wie anfangen?
 
Zitat:

Zitat von fkerber (Beitrag 1064921)
Hi,

ich würde dir raten, deine KI unabhängig von der grafischen Repräsentation zu halten.


LG, Frederic

Das sowieso, einmal wird die Berechnung ohne grafische Ausgabe ausgeführt um an das Ergebnis zu kommen,einmal wird die Berechnung mit grafischer Ausgabe gemacht um es dem Zuschauer zu zeigen.
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:

Zitat von BUG (Beitrag 1064928)
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.

Das könnte interessant werden, werd ich mal machen :D

fkerber 30. Nov 2010 15:02

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

Angel4585 1. Dez 2010 06:46

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.
Seite 1 von 2  1 2      

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