Suche Boggle Solver
Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!
Zu der Infoseite von „Die Mo-Mo-Manie“-
-
Müsste demfall ein programm sein das aus einer wöterliste möglichkeiten ausliest oder zugriff auf eine wörter liste vom I-net hat...
wäre aber nicht wirklich schwierig zu coden könnte man glaube ich mit VB ziemlich leicht realiesieren... -
also ich würd das ganze gern in php machen
und prinzipiell auch nur die möglich kombinationen, das mit der wortliste abgleichen schaff ich schon -
PHP
Alles anzeigen<?php set_time_limit(0); ignore_user_abort(false); define("DIR_UP", 1); define("DIR_LEFT", 2); define("DIR_RIGHT", 3); define("DIR_DOWN", 4); //The letters $boggle = array( array("Y", "W", "D", "E"), array("A", "F", "E", "W"), array("Z", "W", "T", "U"), array("A", "H", "V", "F"), ); //Get combis function boggle($arr) { $used = array(); while (true) { $usedB = array(); $coord = array(rand(0, 3), rand(0, 3)); $len = rand(3, 16); $t = $arr[$coord[1]][$coord[0]]; $prof = $coord[1].';'.$coord[0].';'; for ($i = 0; $i < $len; $i++) { $d = rand(1, 4); while (!checkBorder($coord, $d, $usedB)) { $d = rand(1, 4); } $usedB[] = $coord; switch ($d) { case DIR_UP: $coord = array($coord[0], $coord[1] - 1); $prof .= 'u'; break; case DIR_DOWN: $coord = array($coord[0], $coord[1] + 1); $prof .= 'd'; break; case DIR_RIGHT: $coord = array($coord[0] + 1, $coord[1]); $prof .= 'r'; break; case DIR_LEFT: $coord = array($coord[0] - 1, $coord[1]); $prof .= 'l'; break; } $t .= $arr[$coord[1]][$coord[0]]; } if (in_array($prof, $used)) continue; $used[] = $prof; if (isAGuiltyWord($t)) { echo $t."<br>\n"; flush(); } } } //Replace with own function isAGuiltyWord($word) { if (rand(0, 1)) return false; return true; } //Check borders function checkBorder($coord, $dir, $used) { switch ($dir) { case DIR_UP: $nc = array($coord[0], $coord[1] - 1); if ($coord[1] == 0) return false; break; case DIR_DOWN: $nc = array($coord[0], $coord[1] + 1); if ($coord[1] == 3) return false; break; case DIR_LEFT: $nc = array($coord[0] - 1, $coord[1]); if ($coord[0] == 0) return false; break; case DIR_RIGHT: $nc = array($coord[0] + 1, $coord[1]); if ($coord[0] == 3) return false; break; } if (in_array($nc, $used)) return false; return true; } boggle($boggle); ?>
Ist zwar mit dem Zufall nicht gerade effizient, und musst nur die wortabgleich funktion verändern
In die pseudomatrix kannst du dann die würfelergebnisse eintragen -
kannst du mir das bitte ein bisschen erklären?
ich bräuchst nämlich mit 16 würfel (4X4 feld) und ich blick bei deinem code da nicht ganz durch
wo gibt man bei dir die wortlist ein?
ist das $usedB mit einem file zu ersetzen oder krieg ich da nur kombinationen die nicht unbedingt deutsch sein müssen? -
also ich würd das ganze gern in php machen
Ich blicke nicht mehr durch... willst du den Solver programmieren oder suchst du einen fertigen Solver?
Klingt für mich nämlich gerade so, als würdest du das einfach nur Copy&Paste'n wollen. -
beides
wenn ich den fertigen code krieg bin ich froh aber mit einer anleitung bin ich auch zufrieden. -
beides
wenn ich den fertigen code krieg bin ich froh aber mit einer anleitung bin ich auch zufrieden.
Anleitung zum Programmieren? lol -
vorgangsweise wie ich alle kombinationen krieg
ließ dir mal die regeln von dem spiel durch und hilf mir dann
spammen bringt auch nix -
kannst du mir das bitte ein bisschen erklären?
ich bräuchst nämlich mit 16 würfel (4X4 feld) und ich blick bei deinem code da nicht ganz durch
wo gibt man bei dir die wortlist ein?
ist das $usedB mit einem file zu ersetzen oder krieg ich da nur kombinationen die nicht unbedingt deutsch sein müssen?PHP//The letters $boggle = array( array("Y", "W", "D", "E"), array("A", "F", "E", "W"), array("Z", "W", "T", "U"), array("A", "H", "V", "F"), );
Hier die Würfelanzeigen rein.
Ist ja ein 4x4 feld.Du musst nur noch das
ersetzen da
Zitat von Ratchet
das mit der wortliste abgleichen schaff ich schonWenn es das wort gibt muss es true zurückgeben sonst false
-
Das heist wenn ich die Buchstaben aus einem anderen File übernehme da einfach die Variablen reinschreiben? -
Du würfelst
DPSO
EPIH
LNRR
OSDE*hust*
dann nimmst du
$b = array(
array("D", "P", "S", "O"),
array("E", "P", "I", "H"),
array("L", "N", "R", "R"),
array("O", "S", "D", "E")
); -
hast du den code bei dir schon probiert?
bei meinem xampp dauert das ewig (1min+)
normal so? -
Es sucht kombinationen per zufallsbewegungen, deswegen kann das schon mal länger dauern.
php ist eben eher nicht die skriptsprache für sowas.
Die Ausführungszeit ist dank der whileschleife unendlich.
edit: Btw, du kannst nachdem du genug kombis hast abbrechen im browser drücken. dann hört das programm auf.