lSoleyl / ttvp

P2P Schiffe versenken mit Open-Chord
0 stars 0 forks source link

Ein paar "intelligente" Strategien entwerfen und implementieren #4

Open lSoleyl opened 9 years ago

lSoleyl commented 9 years ago

Momentan wird nur der schwächste Spieler auf einem unbekannten Feld beschossen. Ein paar ausgereiftere Strategien wären ganz cool.

pasndrp commented 9 years ago

Ich habe angefangen eine abstrakte DistributionPattern Klasse zu implementieren über die verschiedene Muster der Verteilung von Schiffen beschrieben werden können. Dazu dann eine Strategie, die versucht bei Spielern Muster zu erkennen. Meine Idee war dann, die Strategie je nach Erfolgsquote wechseln zu können. Ich glaube, das bei der geringen Anzahl von Schiffen keine Regressionsverfahren funktionieren und will daher sinnvolle Muster vorgeben. Im Sinn hab ich da z.B. die folgenden:

Das lässt sich dann beliebig weiter führen. Sobald keine Muster erkannt werden oder die zur Verfügung stehenden Informationen über die Felder eines Spielers nicht ausreichen, kann auf die Zufalls-Strategie zurück gegriffen werden.

Dazu noch die Frage: Macht es immer Sinn auf den schwächsten Spieler zu schießen?

lSoleyl commented 9 years ago

Dazu noch die Frage: Macht es immer Sinn auf den schwächsten Spieler zu schießen?

Ne, nicht immer. Das hat uns Meiling auch gesagt. Man muss bedenken, dass man nur dann gewinnt, wenn man das letzte Schiff eines Spielers versenkt und dies auch korrekt bemerkt. (Oder wenn ein andere Spieler das getan hat, es verplant hat und man dann auf ein Feld des versenkten Spielers schießt)

Also man muss versuchen dann auf den schwächesten Spieler zu schießen, wenn man sich sicher ist, wo das letzte Schiff ist.* Ansonsten sollte man eher auf einen anderen Spieler schießen.

*= Dazu muss eine Runde vorher auch ein anderer Spieler auf uns geschossen haben (sonst sind wir ja nicht dran)

Ist sicher auch viel Glück mit im Spiel und ich wüsste so spontan nicht, wie wir unsere Gewinnchancen radikal steigern können. Ich meine, wenn wir auf den schwächsten Spieler schießen und der andere Spieler die gleiche Strategie hat und auf uns schießt. Dann würde es so lange hin und her gehen, bis entweder wir, oder der andere Spieler gewonnen hat. Jeder von uns hätte somit eine 50% Gewinnchance (wenn die Wahrscheinlichkeit ein Schiff zu treffen identisch ist). Alle anderen Spieler wären gar nicht in das Spiel einbezogen und hätten somit 0% Gewinnchance.

Es ist also auf jeden Fall nicht schlecht, wenn wir getroffen werden. Dann können wir uns zumindest am Spiel beteiligen. Nur hängt der Spielausgang stark davon ab, welche Strategien die anderen Teams implementieren.