@noisefloor
Ich bezweifle irgendwie das das Zweckmäßig ist, denn du kannst ja mehrere Spielvarianten haben, wo diese wieder anders ausgewertet werden müssen.
Was zur folge hat, das du nicht nur eine von deinen Matrizen hast sondern so viele wie Spielvarianten existieren.
Da finde ich den bisherigen Ansatz wesentlich besser.
Skat Spiel - Stiche auswerten
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Habe ich ja geschrieben. Wann braucht 3 (oder 7?) Tabellen.Xynon1 hat geschrieben:@noisefloor
Ich bezweifle irgendwie das das Zweckmäßig ist, denn du kannst ja mehrere Spielvarianten haben, wo diese wieder anders ausgewertet werden müssen.
Was zur folge hat, das du nicht nur eine von deinen Matrizen hast sondern so viele wie Spielvarianten existieren.
BTW: wie machen Schachprogramme das eigentlich? Da ist die Problemstellung zwar anders (welcher Spielzug macht Sinn?), aber AFAIK arbeiten die auch mit Tabellen, wo alle möglichen Stellungen hinterlegt sind.
Gruß, noisefloor
Warscheinlich mit einer großen Zahl Hashtables, aber ich weiß es leider auch nicht, wäre aber mal interessant.noisefloor hat geschrieben:wie machen Schachprogramme das eigentlich?
Aber was vergleichst du da eigentlich ?
Hier ging es doch um "Stiche auswerten", das ist im Schach doch ganz einfach, wenn eine gegnerische Figur dort steht wo man hinziehen will, ist diese weg.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Nach jeder Runde muss man also in die Tabelle gehen, der ausgespielten Karte eine Zahl zuordnen (z.B. Herz 7 = 12) und somit aus den drei Zahl das passende Feld in der Tabelle abfragen, woraus dann hervorgeht, wer den Stich hat.
Gruß, noisefloor
Mein Idee (die, wie gesagt, nur eine Idee ist und nicht wirklich bis ans Ende gedacht) ist, dass man eine 32x32x32 Matrix hat - also für jeden der drei Spieler für jede Karte. Die Felder sind mit einem Wert 1,2 oder 3 belegt; die Zahl sagt, welcher Spieler den Stich bekommt.Aber was vergleichst du da eigentlich ?
Nach jeder Runde muss man also in die Tabelle gehen, der ausgespielten Karte eine Zahl zuordnen (z.B. Herz 7 = 12) und somit aus den drei Zahl das passende Feld in der Tabelle abfragen, woraus dann hervorgeht, wer den Stich hat.
Gruß, noisefloor
Nein, ich meinte deinen Schach-Vergleich.
Du hast die KI eines Schachprogrammes mit "Stiche auswerten" verglichen, welches aber im Schach der Schlagabtausch der Figuren ist.
@noisefloor:
Aber um diese Matrix mit sinnvollen Werten zu befüllen bräuchte man auch erstmal eine Funktion, die Auswertet wem nun der Stich gehört.
Oder willst du ein 32x32x32 Matrix per Hand vollschreiben?
Und damit ist man wieder beim Anfangsproblem ... der Suche nach einer entsprechenden Funktion, die die Skatregeln "kennt".
EDIT:
Schachprogramme arbeiten soweit ich weiß nur im Endspiel (maximal 5-7 Steine auf dem Brett) mit kompletten Tabellen. Größtenteils erzeugen Schachprogramme nur mögliche Spielverläufe und bewerten deren Ausgang. Zum Teil werden die Ergebnisse dieser Suchen während des Spiels in Hashtables gespeichert um spätere Suchen, die von ähnlichen Figurenkonstellationen ausgehen zu erleichtern. Die schiere Anzahl möglicher Figurenkonstellationen auf dem Schachbrett macht es aber unmöglich nur Tabellen zu benutzen.
Hier werden die einfachsten Suchalgorithmen erklärt:
http://de.wikipedia.org/wiki/Minimax-Algorithmus
http://de.wikipedia.org/wiki/Alpha-Beta-Suche
Aber um diese Matrix mit sinnvollen Werten zu befüllen bräuchte man auch erstmal eine Funktion, die Auswertet wem nun der Stich gehört.
Oder willst du ein 32x32x32 Matrix per Hand vollschreiben?
Und damit ist man wieder beim Anfangsproblem ... der Suche nach einer entsprechenden Funktion, die die Skatregeln "kennt".
EDIT:
Schachprogramme arbeiten soweit ich weiß nur im Endspiel (maximal 5-7 Steine auf dem Brett) mit kompletten Tabellen. Größtenteils erzeugen Schachprogramme nur mögliche Spielverläufe und bewerten deren Ausgang. Zum Teil werden die Ergebnisse dieser Suchen während des Spiels in Hashtables gespeichert um spätere Suchen, die von ähnlichen Figurenkonstellationen ausgehen zu erleichtern. Die schiere Anzahl möglicher Figurenkonstellationen auf dem Schachbrett macht es aber unmöglich nur Tabellen zu benutzen.
Hier werden die einfachsten Suchalgorithmen erklärt:
http://de.wikipedia.org/wiki/Minimax-Algorithmus
http://de.wikipedia.org/wiki/Alpha-Beta-Suche