bin neu hier, deshalb ganz kurz: ich bin eigentlich Musiker und programmiere nebenbei ein bisschen Webseiten zum Nebenverdienst. Schwerpunkt liegt hier natürlich auf Flash (Actionscript 3), PHP, Javascript usw. Zum Spaß schreibe ich auch hin und wieder mal ein kleines Programm für mein jeweils aktuelles Handy. Dabei war mal ein Metronom für Win Mobile (in C#) oder z.B. ein kleines Mastermind für die neue Plattform JavaFX. Als nächstes kommt ein Android-Handy dran und hier für habe ich ein neues Projekt: Skat. Android wird von Hause aus in Java programmiert, also ein Java-Projekt.
Insoweit freue ich mich, auf euch gestoßen zu sein. Viele Anregungen aus dem Forum habe ich schon aufgenommen und z.T. umgesetzt. Ich weiß, dass das Projekt ziemlich aufwändig wird. Ich werde schrittweise herangehen und nicht den Ehrgeiz haben, hier das am besten spielende Skatprogramm zu entwickeln, das jemals geschrieben wurde. Aber es soll für ein vernünftiges Spiel zwischendurch geeignet sein. Also solides Spiel, keine unsinnigen Spielzüge, keine dämlichen Fehler machen.
Ich trage zusammen, was ich u.a. schon bei euch fand:
Zur KI:
http://32karten.de/forum/viewtopic.php?t=2562
http://32karten.de/forum/viewtopic.php?t=2568
Zum Mischen:
http://32karten.de/forum/viewtopic.php?t=2500
Zur Bewertung des Blattes:
http://32karten.de/forum/viewtopic.php?t=369
http://32karten.de/forum/viewtopic.php?t=3737
Zur Zeit habe ich das Gerüst fertig, also es gibt die Spieler, ein Blatt, eine Kartenverteilung, es wird gemischt und jeder Spieler beurteilt sein Blatt daraufhin, was gespielt werden könnte. Als nächstes implementiere ich das Reizen und im Zusammenhang damit die grundlegenen Skatregeln. Bis hierhin ist wenig KI notwendig.
Und dann gehts ans Eingemachte...
Ich würde mich freuen, wenn ich von euch ein wenig Unterstützung bekommen könnte. Ihr kennt das Forum besser als ich, zu so vielen Themen wurde schon geschrieben. Aber auch neue Überlegungen sind willkommen. Wichtigste Frage wäre:
Welche grundlegenen Heuristiken sollte man dem Programm mitgeben?
marvin hat geschrieben:Eine Heuristik ist eine Regel der Form "Wenn die Spielsituation das Merkmal X aufweist, so tue Y". Auf Skat bezogen sind das also zum Beispiel Leitsätze wie "Kläre als Alleinspieler möglichst schnell die Trümpfe", "Spiele als Gegenspieler über den langen Weg möglichst eine blanke Karte an", "Zeige beim Abwerfen die Gegenfarbe an" und ähnlich. Ob sie nun gut oder schlecht sind, tut bei der Verwendung des Begriffs Heuristik im Weiteren Sinne nichts zur Sache. Im engeren Sinne versteht man unter einer Heuristik freilich eine sinnvolle Regel.
Eine heuristisch programmierte KI funktioniert nun im Wesentlichen so: Die Programmierer sammeln so viele sinnvolle Heuristiken, wie sie finden können. Das Programm prüft nun alle auf ihre Anwendbarkeit in der konkreten Situation und spielt dann die Karte, die von den meisten anwendbaren Heuristiken vorgeschlagen wird.
Bitte helft mir dabei, "so viele Heuristiken zu sammeln, wie wir finden können".
Vielen Dank,
Peter
Wer möchte (und ein Androidhandy hat), kann das Programm dann gerne bekommen