 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
anihex

Anmeldungsdatum: 09.03.2006 Beiträge: 51
|
Verfasst am: 21.10.2010, 19:01 Titel: Tic Tac Toe und die Anzahl der möglichen Stellungen |
|
|
Hi,
ich arbeite derzeit an einem Video-Tutorial und habe als Thema Tic Tac Toe gewählt.
Da ich ein wenig mehr Informationen bieten wollte, als "nur" wie man es umsetzt, habe ich mich ein wenig schlau gemacht.
Nun habe ich gelesen, dass Tic Tac Toe genau 5.478 verschiedene Stellungen hat.
In einem Testlauf fand mein Programm 5.477 verschiedene Stellungen.
Zuerst dachte ich, mir fehlt eine Stellung weil meine Vorgehensweise immer nur den Spielverlauf eines Spielers analysiert und diesen speichert.
Also ließ ich den Computer die Spielverläufe von beiden Spielern errechnen und ließ doppelte Einträge entfernen.
Das Ergebniss dieser Suche überraschte mich dann allerdings doch.
Anstatt wie erwartet 5.478 Stellungen zu finden, fand mein Programm ganze 8.532
Da dies überhaupt nicht mit dem übereinstimmt was ich gelesen habe, frage ich mich, wo mein Fehler ist.
Leider ist das Programm nicht in FreeBASIC realisiert, daher kann ich das nicht im FreeBASIC Bereich posten.
Sollte sich jemand fragen, warum ich das dann überhaupt in diesem FreeBASIC Forum poste ... Zufällig weiß ich, dass hier ein paar sehr kompetente Leute sind, die mir das sicher genau erklären können.
( Quelltext lade ich bei Bedarf natürlich hoch )
Gruß
Chris / anihex _________________ Es gibt nur 10 Arten von Menschen. Diejenigen, die den Binärcode verstehen und solche, die es nicht tun  |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 21.10.2010, 19:43 Titel: |
|
|
dann lad mal hoch
ohne können wir nur raten
meine idee: die eine-stellung-weniger könnte damit erklärt werden, dass "spielbeginn" mal mitgezählt wird, mal nicht.
bei den achttausend sind vielleicht 90°-rotationen dabei oder so? _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.10.2010, 20:35 Titel: |
|
|
da kann man ne ecke rechnen mit .. ich kann das ganze zeug halt dummerweise überhaupt nich mehr ;P
also .. es gibt in nem spiel einige mögliche situationen. (a und b seien mal die spieler)
1) a 0 b 0
2, 3) a 1 b 0 und a 0 b 1
4) a 1 b 1
5, 6) a 2 b 1 und a 1 b 2
7) a 2 b 2
8, 9) a 3 b 2 und a 2 b 3
10) a 3 b 3
11, 12) a 4 b 3 und a 3 b 4
13) a 4 b 4
14, 15) a 5 b 4 a 4 b 5
1) eine möglichkeit
2 und 3) 9 möglichkeiten falls gedrehte zählen, ansonsten 3.
4) 9*8 = 72 möglichkeiten, oder 5 + 5 + 2 = 12 möglichkeiten falls gedrehte und gespiegelte nicht zählen
5 und 6) 9*8*7 möglichkeiten falls gedreht und gespiegelt zählt, ansonsten ... öhm ja .. keine lust mehr nachzudenken xD
versuch ich mal grob was zusammenzufassen:
nach 3 zügen gibt es, abhängig davon ob gedreht bzw gespiegelt mitzählt oder nicht, entweder 82 mögliche spielsituationen oder 16 mögliche spielsituationen. aussagekraft dieser untersuchung .. ist nicht vorhanden fürchte ich, da man keinen trend sieht ob der faktor zwischen den beiden varianten wächst oder gleich bleibt oder fällt. Außerdem sind drei züge insgesamt nicht genug um schon end-situationen des spiels zu erreichen.
aaaaber: so ähnlich wie ichs da gemacht hab kannst du's dir gerne mal von hand zusammenzählen und schauen wo du rauskommst.
oder man fragt mal google? hmm ich find sogar "The total number of possible individual boards for the two player game is 5474." Also wenn du die richtige antwort wissen willst wirst du's wohl selbst ausrechnen müssen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 21.10.2010, 20:49 Titel: |
|
|
Hmm, nein, meine Antwort war absoluter Quatsch ... wieder gelöscht  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
anihex

Anmeldungsdatum: 09.03.2006 Beiträge: 51
|
Verfasst am: 21.10.2010, 21:00 Titel: |
|
|
Wikipedia hat Folgendes geschrieben: | Für Tic Tac Toe ist eine einfache obere Schranke für die Größe des Zustandsraums 39 = 19.683. (Es gibt 3 Zustände für jedes Kästchen und 9 Kästchen.) Diese Zahl enthält viele unzulässige Stellungen, wie z.B. Stellungen mit 5 Kreuzen und keinen Nullen oder Stellungen, in denen beide Spieler eine Reihe voll haben. Bei einer genaueren Schätzung kann man daher die Anzahl auf 5.478 reduzieren. Wenn man Spiegelungen und Drehungen als identisch betrachtet, sind nur noch 765 grundsätzlich verschiedene Stellungen möglich. |
Sprich : Die 5.478 Stellungen die Wikipedia da angibt, sind ohne Spiegelungen oder Rotationen. Gleiches gilt für meine Analyse des Spieles.
Dein Hinweis, dass die fehlende Stellung durch einmal mit und einmal ohne Ausgangsposition zustande kommt, ist plausibel. Ich habe nämlich nur die Stellungen gezählt, die durch Züge zustande kommen.
Gehen wir davon aus, dass es je Partie maximal 5.478 verschiedene Stellungen gibt, so würde meine Beobachtung mit der von Wikipedia übereinstimmen.
Wenn man aber sämtliche Stellungen annimmt, sind es (mit dem freien Feld) 8.533 Stellungen.
Zumindest laut meinem kleinen Versuch.
Den Link zum Download editier ich hier gleich rein.
// Edit :
Link zum Download : http://rapidshare.com/files/426412057/TicTacToeAnalyse.rar _________________ Es gibt nur 10 Arten von Menschen. Diejenigen, die den Binärcode verstehen und solche, die es nicht tun  |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|