You are not logged in.

wcf.regNote.message

des_cartes

Beginner

  • "des_cartes" started this thread

Posts: 1

  • Send private message

1

Thursday, October 12th 2006, 2:13pm

Billard KI

Hallo miteinander

Ich möchte eine KI für ein OpenSoure-Billardspiel programmieren.
Die Einstellparameter für den Stoss sind Richtung und Stärke.
Die KI soll fähig sein Bälle zu versenken, die neue Position des weissen Balles und einige weitere Spielzüge zu berechnen.

Nach meinen ersten Überlegungen muss man zuerst alle Ballpositionen kennen und daraus lässt sich dann der Rest errechnen.

Nun wollte ich euch fragen wie schwierig/aufwendig ist so etwas? Vielleicht haben einige von euch schon KI?s programmiert und wissen können den Aufwand einschätzen. Was denkt ihr wie viel Zeit muss da etwa investieren? Ich ca. eine Woche reine Programmierzeit zur Verfügung. (Im Februar nächten Jahres muss der Code abgegeben werden).

Gruss

des_cartes

Lila

Beginner

Posts: 22

  • Send private message

2

Thursday, February 8th 2007, 8:43am

RE: Billard KI

Ich halte es durchaus für möglich, würde aber mit einem Monat an Programmierzeit rechnen.

Musst ja quasi nur 2D Vektoren nutzen um die RIchtungen ausrechnen udn ein wenig einfache Physik für die elastischen Stöße...

Dazu dann alle möglichkeiten zu den Taschen wenn man andere Kugeln anstößt ausrechnen und dir ein Schema einfallen lassen, nach dem du ermittelst was der optimale Stoß ist. Das wäre dann keine reale KI, aber würde schon einiges hergeben. Kostet aber auch Rechenleistung alle Möglichkeiten zu errechnen und die optimalste zu wählen.

slice89

Trainee

Posts: 55

Location: Hunsrück

Occupation: Fachinformatiker

  • Send private message

3

Thursday, February 8th 2007, 2:29pm

Ich würde sagen da muss man zwischen Berechnungszeit und KI-Leistung abwägen.
Aus z.B. 5 Kugeln die perfekte zu errechnen dauert ewig. Erst muss man bei allen die Chancen ausrechnen und das bei allen Stoßstärken. Dann muss man bei den besten Stößen, dass Ergebniss ausrechnen (Position der einzelnen Kugeln, nach dem Stoß), bei der Endsituation muss man wieder die besten Chancen ausrechnen. Der Stoß, der die besten Möglichkeiten bietet wird dann ausgewählt, wenn es immer noch gleichwertige Stöße gibt, kann man zufällig lösen oder sich nen komplizierten Algorithmus überlegen, welcher Stoß nach allem halt ausgeführ wird. Mit mehreren Stößen vorraus berechnen wird das aber eher nichts.
Kurze Rechnung zu dem Fall:
Stoßstärke von 1 bis 100. 5 Bälle, die in Frage kommen.
Sind 500 Stöße, sagen wir davon kommen nur 50% für die weiterverwendung in Frage.
250 Stöße bei denen jeweils das Endergebnis jedes einzelnen Ball's berechnet werden muss. (250x6, denn die weiße Kugel muss ja auch berechnet werden) Macht dann 1500 Stöße und du hast dann erst auf einen Zug im vorraus berechnet. Weiterführen muss ich die Rechnung wohl nicht, es wird klar sein was ich meine. Ich muss aber noch dabei sagen, dass das dann nur die Berechnungen
für die Positionsbestimmungen sind, da kommt dann noch ein bisschen dabei. (Außerdem wird bei diesem Rechenbeispiel sogar nur die Chance auf einen Treffer bei einer Tasche berechnet, ohne Bandenspiel oder ähnliches. Und nur bei direktem Anspielen, also ohne schneiden. Dabei wird sich das ganze wahrscheinlich quadratieren.)
Aber neben dem Problem des Rechenaufwands hat das auch noch zur Folge, dass die KI unschlagbar ist.
Ausserdem wirst du Probleme mit der Physik bekommen. Es ist z.B. normal wenn man den Anstosspunkt auf der weißen Kugel verändern kann. Wo der 3D Programmierer das einfach Simuliert, wirst du wahrscheinlich die Bewegung vorgeben müssen, da du sonst Probleme bekommen wirst. Soll heißen das dir für die richtige Physikberechnung die dritte Achse fehlt.

Ist zwar ne Menge, aber du solltest es eigentlich in den Griff bekommen.
Also viel Glück dabei.
Das Leben ist eine Krankheit, die durch Geschlechtsverkehr übertragen wird und immer tödlich endet!

Bombing for peace is like fucking for virginity

This post has been edited 2 times, last edit by "slice89" (Feb 8th 2007, 4:34pm)


wcf.user.socialbookmarks.titel