Wie eine connect vier Spielsituation in Java, um zu bewerten

stimmen
0

Ich versuche, eine einfache KI für ein „Get vier“ Spiel zu schreiben. Die grundlegenden Spielprinzipien sind fertig, so kann ich in Münzen unterschiedlicher Farbe zu werfen, und sie stapeln aufeinander und einen 2D-Array füllen und so weiter und so fort. bis jetzt ist es das, was das Verfahren wie folgt aussieht:

public int insert(int x, int color)  //0 = empty, 1=player1 2=player2

X ist die horizontale Koordinate, wie die Y-Koordinate bestimmt wird durch wie viele Steine ​​in der Anordnung sind bereits, ich denke, die Idee ist offensichtlich.

Nun ist das Problem , das ich bestimmte Spielsituationen zu bewerten habe, so finden , wie viele neue Paare, Drillinge und möglichen 4 in einer Reihe I in einer bestimmten Situation bekommen , um dann jeder Situation einen bestimmten Wert zu geben. Mit diesen Werten kann ich ein Setup „Game Baum“ , um dann zu entscheiden , welche Bewegung am besten wäre nächst (später bei der Umsetzung Alpha-Beta-Pruning). Mein aktuelles Problem ist , dass ich nicht eine effiziente Art und Weise denken kann , eine Bewertung der aktuellen Spielsituation in einer Java - Methode zu implementieren.
Irgendwelche Ideen wäre sehr dankbar!

Veröffentlicht am 10/12/2008 um 01:05
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
4

Ich vermute, dass dies eine Hausaufgabe ist, und dass Sie meinen Sie die Bewertungsfunktion schreiben möchten und nicht wissen, welche Tricks zu benutzen?

Das Spiel wird „Connect 4“ auf Englisch genannt wird, so können Sie Google für „4 Bewertungsfunktion verbinden“.

Sie können genug Leute Diskussion Heuristiken finden.

Bitte keine tatsächliche Quellcode kopieren, es ist eine wichtige Übung :)

Beantwortet am 10/12/2008 um 01:27
quelle vom benutzer

stimmen
1

Der Suchraum für Connect 4 ist nicht unmöglich groß. Für eine einfache Implementierung, wenn auch eine, die eine Weile laufen nehm (vielleicht zehn Minuten) tun, um eine Minimax-Suche, bis jemand gewinnt oder das Spiel endet. Weisen Sie +1 oder -1 für einen Sieg für einen Spieler oder die andere, und 0 für ein Unentschieden.

Beantwortet am 10/12/2008 um 11:04
quelle vom benutzer

stimmen
0

Bollocks. Suchraum ist riesig. Sie benötigen eine vordefinierte Tabelle verwenden, wenn Sie das tun wollen.

Beantwortet am 05/02/2009 um 19:33
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more