Mastermind Code in nur 5 Züge knacken
-
uh, ich glaub ich hab schon einen guten Ansatz. Muss mal eine Statistik führen und dann versuchen den zu beschreiben. (auf ø = 4,340 komme ich aber vermutlich ich nicht :)).
Ich verschiebe das mal in das Mathematik-Forum, da es hier ja um einen Algorithmus geht.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Themen rund um den PC in das Forum Mathematik verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hmm, zZ bin ich bei 5,636
Werd das aber mal wegen Zeitmangels sein lassen
-
Bei wievielen Farben und welchen Informationen der Antwort? Dürfen Farben doppelt vorkommen? Gilt die "leere" Farbe? Bekomme ich darüber Auskunft welche Farbe richtig war oder nur, dass eine der 4 richtig war, etc.
MfG SideWinder
-
Meines Wissens sind es bei normalen Mastermind 6 Farben und man bekommt nur Infos ob richtige farbe und/oder richtige position, aber nicht welche Position richtig ist (oder welche Farbe richtig). Der Code selber besthet aus 4 steinen und farben können auch doppelt sein.
-
-
Ich hab mal ein Mastermind Game gebastelt:
http://dow.4players.de:1046/forum/attachment.php?attachmentid=13009-Was ihr braucht Win9x or higher
-Netframworks 2.0 or higher
-Keine Installation erforderlichViel Spaß
-
moin,
ich geb hier auch mal meinen Senf dazu:
Ich bin ein miserabler mastermindspieler, aber ich wollt mich mal mit der Frage beschäftigten, wie man STandardmastermind (4 Stecker mit je 6 Farben) möglichst gut lösen kann.
Erstes Resultat (ist alle Kombinationen in ner bestimmten Reihenfolge durchgegangen) : 6049/1296 = 4,67Meine Vorstellungen wie das besser geht:
man formuliert keinen konkreten Algorithmus sondern berechnet eine Liste in der Steht, wann der Computer was einzugeben hat.Wenn man immer den Zug nimmt, der die meisten Farbkombinationen ausschließt kriegt man ca. 5684/1296 = 4,39
Die Liste an Zügen zu berechnen dauert auf meinem REchner ca. 30 Sekunden.Im Moment probier ich jeweils mehrere Möglichkeiten durch, die jeweils eine gute Verteilung auf die Bewertungen erzeugen.
Um den Algorithmus zu testen hab ichs auf ein kalorienreduziertes Mastermein gejagt (3 stecker mit je 5 Farben macht 125 Möglichkeiten).
Rechendauert: erst 2 STunden
hab dann ein bisschen rumoptimiert und er berechnet das gleiche jetzt in 6 Sekunden.
Das Standardmastermind kann ich damit leider noch nicht in akzeptabler Rechenzeit lösen
deshalb wirds so umgeschireben, dass mehrere Rechner jeweils einen Teil des Problems lösen bzw. ich auf meinem Rechner nacheinander Teile des Problems löse.Ich hab den Algorithmus auf meinem Rechner ausprobiert und in 82 Stunden kam er nicht zum Ergebnis, ist also ziemlich rechenintensiv.
Möchte vllt. jemand mal seine Prozessorleistung etwas testen?
hätte da bald ein Programm, was da gut vordernd ist... ; )mfg
Fabian
-
Jo, gib dann mal Link
-
Man nehme:
a) alle 14 Antwortmöglichkeiten
b) Suche die Steckkombination, die bei allen verbliebenen möglichen (von 6 hoch 4) diejenige, bei der die Verteilung auf die 14 Antwortmöglichkeiten am besten ist. Das 'Beste' ist das, wo das Maxmum minimal wird. Die Antwortmöglichkeit muß nicht in der Menge der noch möglichen stehen.
c) Wenn es nur noch eine Möglichkeit gibt, sucht man diese direkt
d) dieses baut man rekursiv auf. Jedesmal schreibt man den genommenen Zug zusammen mit dem Stack aus den Antwortmöglichkeiten auf.Als Ergebnis gibt es Paare, die aus einer Folge von Elementen aus a) und einer Steckkombination besteht.
Wenn es jetzt keinen Eintrag gibt, bei dem der Stack größer als 5 ist, hat man es geschafft. Bei mir läuft es.
Die Ergebnisse habe ich eben in JavaScript in HTML eingebaut. Der Browser löst MasterMint, in dem er aus jedem Schritt einen String zusammenbaut. Jeder Kombination aus a) stellt einen Buchstaben dar. Die Folge der Buchstaben ist der Stack. Dieses sind die Eigenschaften eines JavaScript-Objects. Die Werte der Eigenschaften sind die Züge.
Fragen bitte an spam_postfach@jubii.dk (lese ich sehr selten)
Albi