Bei meinem 2x2 Rubiks Cube Lösungsprogramm hagelt es Fehlermeldungen (über 20000) wie die folgenden: ( ! ) Notice: Uninitialized string offset: 9 in C:\...\2x2_solver.php on line 36 Call Stack # Time Memory Function Location 1 0.0000 161872 {main}( ) ..\2x2_solver.php:0 2 0.0000 162256 all_positions( ) ..\2x2_solver.php:91 3 0.0070 212360 all_positions( ) ..\2x2_solver.php:81 4 2.2481 15531920 all_positions( ) ..\2x2_solver.php:81 5 2.2731 15679904 all_positions( ) ..\2x2_solver.php:81 6 2.6132 17793968 all_positions( ) ..\2x2_solver.php:81 7 2.6132 17794504 do_something( ) ..\2x2_solver.php:80 8 2.6132 17794504 move_multi( ) ..\2x2_solver.php:86 9 2.6181 17828528 move( ) ..\2x2_solver.php:58 ( ! ) Notice: Uninitialized string offset: 9 in C:\...\2x2_solver.php on line 66 Call Stack # Time Memory Function Location 1 0.0000 161872 {main}( ) ..\2x2_solver.php:0 2 0.0000 162256 all_positions( ) ..\2x2_solver.php:91 3 5.6013 33848712 all_positions( ) ..\2x2_solver.php:81 4 7.4784 43040664 all_positions( ) ..\2x2_solver.php:81 5 7.8194 44679592 all_positions( ) ..\2x2_solver.php:81 6 7.9145 45073344 do_something( ) ..\2x2_solver.php:80 7 7.9305 45188080 cube_is_solved( ) ..\2x2_solver.php:88 Wie kann man den Fehler beheben (eigentlich sollte dieser nicht vorkommen)? Wenn der Fehler behoben ist schreibe ich hier noch einmal das ganze Programm hin. Nun eine Info zum Programm: den Cube gibt man Flächenweise in Schreibrichtung ein (Oben,Vorne,Links,Hinten,Rechts,Unten). Das Programm sollte eine richtige Lösung kalkulieren (bisher allerdings nur mit U).
:
Bearbeitet durch User
Den Fehler habe ich nicht gefunden, ausprobiert hab ich das Programm auch nicht. Es kann jedoch einiges verbessert werden: 1) do_something ist kein guter Funktionsname 2) Strings sollten nicht als array missbraucht werden 3) dashier: for ($i = 0; $i <= count($carray)-1; $i++) besser als foreach loop oder so: for($i=0,$n=count($carray); $i<$n; $i++) damit count nicht ständig aufgerufen wird und das -1 wegfällt 4) Kommentare sind wichtig (vergesse ich auch gerne) 6) php funktionen und HTML code trennen, dann lassen sich einfacher tests schreiben Ausserdem: Wenn 3 Seiten eines Rubik's cube definiert sind, stehen alle anderen fest. PS: Ich hab sowas mal mit c++ für nen packwürfel gemacht, in 3D! (monoskopisch) PPS: Könnte mal jemand die Code-ansicht bei PHP-Dateien reparieren?
:
Bearbeitet durch User
Daniel A. schrieb: > Ausserdem: Wenn 3 Seiten eines Rubiks Pocket Cube definiert sind, stehen alle > anderen fest. Das stimmt nicht: - Das Farbschema ist nicht bekannt - dadurch können Teile gleich sein obwohl sie es nicht sind - Es können zwei Seiten gleicher Farbe sein Außerdem ist die Eckenorientation der hinteren Ecke, von der keine Farben bekannt sind, relativ schwierig zuberechne. Daniel A. schrieb: 1) do_something ist kein guter Funktionsname Geändert. 2) Strings sollten nicht als array missbraucht werden Das ist kein Missbrauch sondern ein Zugriff auf das Zeichen N. 3) dashier: for ($i = 0; $i <= count($carray)-1; $i++) besser als foreach loop oder so: for($i=0,$n=count($carray); $i<$n; $i++) damit count nicht ständig aufgerufen wird und das -1 wegfällt Verbessert. 4) Kommentare sind wichtig (vergesse ich auch gerne) Stehen nun bei jeder Funktion. 6) php funktionen und HTML code trennen, dann lassen sich einfacher tests schreiben Wo ist Nummer 5? Es sind doch nur 19994 Fehlermeldungen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.