Autor Beitrag
bockwurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 191

win98 /XP
D1 D5 Prof DE2005PE
BeitragVerfasst: Do 24.03.05 12:08 
hat jemand eine Ahnung, wie man einen Zuggenerator für ein Skatspiel programmiert?
Ich will alle möglichen "Züge" ausführen und am Ende alle Punkte zusammen zählen. Es soll so etwa wie beim Schach sein, mit Hash und so. Schwierigkeiten bereitet mir aber hier, daß nicht immer abwechselt gezogen werden muß. Um es aber nicht all zuschwierig zu machen, will ich nach der Kartenausgabe nur Wissen, ob mein Spiel gewonnen ist. Alle Karten sind hierbei als offen zu sehen. D.h. der Computer kennt die Karten im Skat und die der Gegner.
zemy
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 207

Win XP Prof.
D7
BeitragVerfasst: Sa 26.03.05 01:36 
Zitat:
Es soll so etwa wie beim Schach sein, mit Hash und so.

Bitte um Aufklärung, mit Schach-KIs habe ich mich noch nicht weit genug auseinandergesetzt

Zitat:
Ich will alle möglichen "Züge" ausführen und am Ende alle Punkte zusammen zählen.


Willst du jetzt alle möglichen Zugkombinationen ausprobieren und dabei die Punkte Zählen? Soll sich dabei entscheiden, welche Karte du spielts? (du also einen Spiel-Baum aufstellst, der mögliche Zugkombos aufzeigt? Dürfte ziemlich weit gefächert sein...

Mein Gedankenansatz für ne Skat-KI: Wenn der Computer sieht, was der andere für Karten hat, ist es unrealistisch. Lieber Proceduren, um die eigenen Karten nach diversen Kriterien zu bewerten (wieviel Trumpf, Welche Wenzel, Wie sieht der Rest aus, ..) und dann, mit "mitzählen", diverse Spielstrategien verfolgen (Trumpf runterspielen, wer hat (wahrscheinlich) welche Karte und wie kann man die ziehen, ...)

Falls es allerdings dein erstes "KI-Projekt" ist, würde ich dir empfehlen ein einfacheres Spiel zu wählen, MauMau z.B. Skat ist doch schon ein recht komplexes Spiel.

_________________
LifeIsToShortToThinkAboutTheShortness
bockwurst Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 191

win98 /XP
D1 D5 Prof DE2005PE
BeitragVerfasst: Di 29.03.05 22:58 
Ja, er ist vielleicht ein wenig "gemogelt" von der Computer alle Karten kennt, aber einfach ist es dann auch nicht. Ja, es soll wie beim Schachspiel alle mögliche "Züge" berechnet werden. Wie lnge es von der Ausgangsposition (jeder 10karten dauert, keine Ahnung). Der Algorithmus viel mir aber nicht in den Kopf. Hashen wird beim Schach benutzt und meint nichts anderers, daß es viel viel schneller geht. Informationen , wie man ein Schachspiel programmiertt (Mit Hash und Nullmove) findest du unter www.bauer-schweitzer.de/index.html

Gruß andreas
HolgerB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 91

Win XP
D6 Pers
BeitragVerfasst: Di 29.03.05 23:37 
Hallo,

die Jungs von Delphi-Source haben da zwei tolle Tutorials zum Thema Rekursion und Labyrinth.

Rekursive Prozeduren sind Prozeduren, die sich selber wieder aufrufen, bis sie eine Lösung gefunden haben, oder fehlschlagen. Damit lassen sich auch Kartenspiele simulieren.

Ich fürchte dur wirst nur weiter kommen, wenn du das im Schlaf kanst.

www.dsdt.info/tutorials/index.php?cat=8

Gruß
Holger
bockwurst Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 191

win98 /XP
D1 D5 Prof DE2005PE
BeitragVerfasst: Mi 30.03.05 14:17 
Mit der Rekusion selbst habe ich keine Prbleme. Wenn ich sage den Algoritmus, dann meine ich die Logic. Sie ist beim Skat anders als z.B. beim Schach. Meine Ausdachte ist mir zu kompliziert / bzw. zu lange. Ich suchen einen kürzen Weg. Wie es nun implementiert (Stack!) spielt erstmals keine Rolle.

Andreas