Variabelinhalt zur Variabel machen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variabelinhalt zur Variabel machen

    Erstmal Hallo Leute!

    Ich bin neu hier und hoffe ihr nimmt es mir nicht so krumm, wenn ich direkt am Anfang schon einen Fehler machen sollte ;-)

    Aaaalso... Ich habe mich nun bei euch ein wenig eingelesen und denke das ihr mir bestimmt helfen könnt

    Ich sitze wahrscheinlich einfach nur schon zu lange am PC um auf die Lösung zu kommen, oder ich bin einfach nur zu doof

    Aber nun zu meinem Problem.
    Jeder kennt doch bestimmt das "Spiel" wo man z.B. 5 Ziffern sieht, diese unbekannt mit einander verknüpft sind, und man selber die nächst logische Zahl herausfinden muss.

    Kleines Beispiel:
    2,8,4,16,8 ===> Logische Zahl 32
    2,4,8,10,20 ==> Logische Zahl 22

    Denke ihr wisst was ich meine. Diese versuche ich als Snoob zu coden. Da mir noch einiges an Erfahrung fehlt benutze ich die uneffiziente StepByStep-Methode. Sprich, ich schreibe Code. Funktioniert er, ändere und erweitere ich ihn, testen, usw...

    Im moment macht mein Code das was er soll,... eigentlich.

    PHP-Code:
    <?
    //kurze Config
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    $start_string_min = 1;    //Gibt mindeststartwert der ersten Zahl an
    $start_string_max = 100;//Gibt maximalstartwert der ersten Zahl an

    $show_turns    = 5;        //Wie viele Aufgaben sollen angezeigt werden
    $show_string = 5;        //Gibt an wieviele Zahlen vorher angezeigt werden (min 3) 
    $show_solve    = 1;        //Gibt die Anzahl der einzutragenden Ziffern ein


    //Kurze Script-Config
    $radicular_hash = array('1','4','9','16','25','36','49','64','81','100','121','144','169','196','225','256','289','324','361','400');

    /*
    $operator_hash = array('1' => '$wert_3 = $wert_1 + $wert_2',          //Plus
                            '2' => '$wert_3 = $wert_1 - $wert_2',        //Minus
                            '3' => '$wert_3 = $wert_1 * $wert_2',        //Mal
                            '4' => '$wert_3 = $wert_1 / $wert_2',        //Geteilt
                            '5' => '$wert_2 = $wert_1 * $wert_1',        //Quadrat
                            '6' => '$wert_2 = sqrt($wert_1)');            //Wurzel
                          

    */
    //Script (Theoretisch)//
    for($ia=1; $ia<=$show_turns; $ia++) //Bestimmt Anzahl der Aufgaben
        {
        $x = 1;
        
        for($ib=1; $ib<=$show_string; $ib++) //Bestimmt vorrangehende Anzahl der Ziffern
            {
            if(!isset($wert_1))
                {
                srand((double) microtime()*100000);
                $wert_1 = rand($start_string_min,$start_string_max);
                }
            
            if($x <= ($show_string - 1))
                {
                srand((double) microtime()*100000);
                $op = '-'.rand(1,6);
                $x++;
                }
            else
                {$op = '';}
            
            $string = '$wert_'.$ib;
            
            echo $string.$op;
            }
        unset($wert_1);    
        echo '<br />';
        }
    ?>
    Die Zeile $string = '$wert_'.$ib; macht mir dabei Probleme. Wie schaffe ich es, das die Variabel nicht (in diesem Beispiel, im ersten Durchlauf) den Wert '$wert_1' beinhaltet, sondern den inhalt, den die eben genannte Variabel eigentlich beinhalten sollte ---> Sprich den Zufallsgenerierten Wert. Hoffe ihr wisst was ich mein.

    Ich danke euch schon mal im Vorraus. Ist wahrscheinlich gerade n dummer Denkfehler von mir *schäm*. Hoffe ihr könnt mir helfen.. Liebe Grüße, KaffeeTrinken

  • #2
    Wenn ich dich richtig verstanden habe dann so:
    PHP-Code:
    $string ''.$wert.'_'.$ib

    Kommentar


    • #3
      Joar... das schon nicht ganz falsch ^^ Auf jedenfall schonmal danke für den Lösungsansatz!

      Mein Problem ist das 'echo' mir dezeit das WORT $wert_1 anzeigt. Dummerweise ist das aber genau das, was ich nicht will Ich möchte das statt $wert_1 ein Zufallsgenerierter Startwert angezeigt wird.

      Moment.. ich verdeutlich es anders:

      $string = '$wert_'.$ib; bewirkt (Sichtbar auf dem Bildschirm):

      $wert_1-6$wert_2-4$wert_3-2$wert_4-2$wert_5
      $wert_1-6$wert_2-5$wert_3-4$wert_4-3$wert_5
      $wert_1-3$wert_2-6$wert_3-5$wert_4-4$wert_5
      $wert_1-2$wert_2-1$wert_3-3$wert_4-2$wert_5
      $wert_1-3$wert_2-2$wert_3-4$wert_4-4$wert_5


      Es sollte aber eigentlich der derzeitig sichtbare Variabelname $wert_1 durch den oben im Script generierten Wert erstetzt werden.

      Die anderen Variabeln $wert_2 bis $wert_5 fehlen noch in der difinition im Script. D.h. da diese derzeitig nicht existieren, dürften sie auch nichts anzeigen (außer den Inhalt der $op), was zur follge hätte das NUR die erste Zufallszahl mit z.B. -6 zu sehen sein dürfte. Also z.B: 56-6 (und das 5 mal untereinander mit unterschiedlichen zahlen)

      Hm... wie kann ich das denn noch beschreiben,... ö.Ö. Die Hürde versaut mir meinen ganzen Abend *hmpf*

      Kommentar


      • #4
        Kein schöner Stil aber wenn du es unbedingt so machen willst:
        PHP-Code:
        ${$wert.'_'.$ib

        Kommentar


        • #5
          Variable Variablen sind Pfusch. Warum kein Array verwenden?

          Kommentar


          • #6
            Zitat von fab-s Beitrag anzeigen
            Kein schöner Stil aber wenn du es unbedingt so machen willst:
            PHP-Code:
            ${$wert.'_'.$ib
            Danke für die Idee... Ich weiß das es derzeitig noch nicht die schöne Art und Weise ist,.. wüste aber nicht wie ich es sonst realisieren sollte. Dein Code funzt übrigens nicht. Er sagt mir das $wert undefiniert sei...

            h3ll:
            In Arrays? Arbeite nahezu immer mit arrays Allerdings habe ich noch nie versucht ein Script zu pasteln, was mir Aufgaben generiert, die auf Logik-basieren. Das Script ist noch in der "Embrio-Phase",.. ich habe da nur diesen ollen Haken, an dem ich mich voll aufhänge *grml*

            Ich denke ihr wisst, was es für ein Script später mal werden soll, oder? Wenn ja, vielleicht habt ihr ja noch eine andere Idee, wie ich das realisieren kann,...

            *EDIT*
            h3ll --> Du hast mich gerade auf eine Idee gebracht mit deinen Array-kram,.. schauen obs funzt, wenn ich weiß, wie ich es umsetzen soll ^^

            *EDIT*
            Ich habs dank h3ll!
            Er hatte absolut Recht... "Variable Variablen".. als er das sagte, kam mir das irgendwie bekannt vor und ..KLAR.. ich hatte das in den ersten Tuts öfters gelesen Ich sitze einfach schon zu lange vor dem Rechner ^^ Habe die Werte nun in Arrays geändert.

            Bin gerade froh darüber, das der andere Code-Schnipsel nicht gefunzt hat ^^ danke für den Denkanstoß, jetzt klappt alles wieder!
            Zuletzt geändert von KaffeeTrinken; 14.08.2010, 20:13.

            Kommentar


            • #7
              Zitat von KaffeeTrinken Beitrag anzeigen
              Danke für die Idee... Ich weiß das es derzeitig noch nicht die schöne Art und Weise ist,.. wüste aber nicht wie ich es sonst realisieren sollte. Dein Code funzt übrigens nicht. Er sagt mir das $wert undefiniert sei...

              ...

              Bin gerade froh darüber, das der andere Code-Schnipsel nicht gefunzt hat ^^ danke für den Denkanstoß, jetzt klappt alles wieder!
              Hatte mich etwas irritieren lassen, was ich eigentlich meinte war

              PHP-Code:
              ${'wert_'.$ib
              Aber das nur der Vollständigkeit halber, ist schon besser dass du eine Lösung ohne variable Variablen gefunden hast

              Kommentar


              • #8
                Zitat von fab-s Beitrag anzeigen
                Hatte mich etwas irritieren lassen, was ich eigentlich meinte war

                PHP-Code:
                ${'wert_'.$ib
                Aber das nur der Vollständigkeit halber, ist schon besser dass du eine Lösung ohne variable Variablen gefunden hast
                Ah... Super.. trotzdem danke Wer weiß wofür man das noch mal irgendwann gebrauchen kann

                Euch noch mal einen riesen Dank. Ihr habt mir den Abend gerettet!

                Kommentar

                Lädt...
                X