Entwicklung eines Skatprogrammes für Android

Skat gegen den Computer

Entwicklung eines Skatprogrammes für Android

Beitragvon Peadey » 2. Okt 2011 13:30

Hallo liebe Forenmitglieder,

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 :-)
Peadey
 
Beiträge: 2
Registriert: 1. Okt 2011 01:50

Beitragvon Gast32 » 3. Okt 2011 11:25

Hallo und Willkommen

Skat ist zu schwer

Vielleicht lieber erst mal Ramsch

Viele Grüße
Gast32
 
Beiträge: 126
Registriert: 15. Sep 2011 11:35

Beitragvon Karlzberg » 3. Okt 2011 15:35

evtl. kannste dir hier bißchen anregungen holen:

http://www.spielgeist.net/

da gibts open source skat-/schafkopf- programme und -ki.

ansonsten würd ich noch http://www.32karten.de/forum/viewforum.php?f=39 vorschlagen, wobei dieser bereich sich mehr ums alleinspiel dreht.
gez.: Das einzig wahre Bier
Karlzberg
 
Beiträge: 3287
Registriert: 29. Sep 2005 23:56

Beitragvon Kreuzpeter » 3. Okt 2011 22:49

Hallo Peadey,

der Inhaber von 32karten.de -Skatfuchs- hatte mal vor ein paar Jahren bestimmte Ideen zu den Funktionen eines Skatprogramms. Da Du in Java programmieren möchtest, wäre Dein Programm natürlich auch für andere OS prinzipiell nutzbar. Nehm doch bitte mal Kontakt mit Skatfuchs auf; vielleicht gibt's dann ja bald Onlineskat auf 32karten.de.

Gruß

Kreuzpeter
Kreuzpeter
 
Beiträge: 345
Registriert: 6. Sep 2005 14:30

Beitragvon Peadey » 7. Okt 2011 00:30

Vielen Dank für den Input! Ich melde mich zur Zeit noch nicht so häufig, weil ich noch an der Perepherie arbeite. Heute habe ich das Mischen mal auf eine "menschliche" Vorgehensweise umgestellt. Sehen die Blätter doch gleich viel spielbarer aus :D
Im Gegensatz zu der Meinung, die in dem oben zitierten Thread übers Mischen geäußert wurde (nämlich dass gute Programme besonders gut durchmischen und schlechte weniger), ist es nämlich eher so, dass das rein zufällige Mischen ganz simpel zu erreichen ist, da reicht ein einfaches Collections.shuffle() und schon ist es wunderbar durcheinander. Menschliches Mischen lässt ja immer kleine Teilmengen der Karten zusammen und das macht schon was aus. Die Frage, ob es nun gut oder schlecht ist, dies zu imitieren, hat zumindest nichts mit der Programmierkunst zu tun (tatsächlich ist es viel aufwändiger, die menschliche Art zu imitieren). Eventuell kann man ja in den Spieleinstellungen eine Auswahl zur Verfügung stellen, wleche Art des Mischens bevorzugt wird. Wenn jemand Code sehen will, kann ich gerne hier was reinstellen.

Die Idee zu einem Online-Skat von 32karten.de ist lustig, find ich gut.

Also bis denne...
Peadey
 
Beiträge: 2
Registriert: 1. Okt 2011 01:50


Zurück zu Skatprogramme

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast