Matix mit PHP?

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

  • Matix mit PHP?

    Hallo,

    ich möchte diesen code kürzen.
    Für die ensprechende zufallszahl soll dann die anzahl der punkte gesetzt werden.

    Meine idee ist ja nicht schlecht, aber ich merke gerade das ich dafür viel mehr IF-Abfragen brauche als mir lieb ist!

    Gibts da eine elegante Lösung, ich möchte nicht so einen riesigen code dafür haben


    PHP-Code:
      $nr=range(1,6); shuffle($nr); # 6 Zufallszahlen erzeugen
      
    $ol=0$ml=0$ul=0$mm=0$or=0$mr=0$ur=0;

      if(
    $nr[0]==1){$mm=1;} # Nur die 1 des Würfels
      
    if($nr[0]==2){$ul=1$or=1;} # Die 2 => unten links und oben rechts
      
    if($nr[0]==3){$ul=1$mm=1$or=1;}
      if(
    $nr[0]==4){$ol=1$or=1$ul=1$ur=1;}
      if(
    $nr[0]==5){$ol=1$or=1$ul=1$ur=1$mm=1;}
      if(
    $nr[0]==6){$ol=1$ml=1$ul=1$or=1$mr=1$ur=1;} # Alle Punkte, ausser dem in der mitte

      # Punkte für Würfel 1 (links)
      
    if($mm==1){imageFilledRectangle($im,3,3,7,5,$c); imageFilledRectangle($im,4,2,6,6,$c);} # Punkt oben links
      
    if($mm==1){imageFilledRectangle($im,3,9,7,11,$c); imageFilledRectangle($im,4,8,6,12,$c);} # Punkt mitte links
      
    if($mm==1){imageFilledRectangle($im,3,15,7,17,$c); imageFilledRectangle($im,4,14,6,18,$c);} # Punkt unten links
      
    if($mm==1){imageFilledRectangle($im,8,9,12,11,$c); imageFilledRectangle($im,9,8,11,12,$c);} # Punkt mitte rechts
      
    if($mm==1){imageFilledRectangle($im,13,3,17,5,$c); imageFilledRectangle($im,14,2,16,6,$c);} # Punkt oben rechts
      
    if($mm==1){imageFilledRectangle($im,13,9,17,11,$c); imageFilledRectangle($im,14,8,16,12,$c);} # Punkt mitte rechts
      
    if($mm==1){imageFilledRectangle($im,13,15,17,17,$c); imageFilledRectangle($im,14,14,16,18,$c);} # Punkt unten rechts 
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

  • #2
    Habe neulich einen Würfel in ActionScript gezeichnet. Kannst du dir ja mal ansehen und entsprechend übersetzen:
    PHP-Code:
    public var radius:uint 3;
    public function 
    drawscore:uint ):void {
        if( 
    score<=) {
            
    score 1;
        }
        else if( 
    score>) {
            
    score 6;
        }
        
        
    graphics.clear();
        
        var 
    width_2:uint width 2;
        var 
    width_4:uint width 4;
        var 
    width_3:uint = (width 3) / 4;
        var 
    height_2:uint height 2;
        var 
    height_4:uint height 4;
        var 
    height_3:uint = (height 3) / 4;
        
        
    graphics.lineStyle0);
        
    graphics.beginFill);
        
        switch( 
    score ) {
            case 
    1:
                
    drawPointwidth_2height_2 );
                break;
            case 
    2:
                
    drawPointwidth_4height_4 );
                
    drawPointwidth_3height_3 );
                break;
            case 
    3:
                
    drawPointwidth_2height_2 );
                
    drawPointwidth_4height_4 );
                
    drawPointwidth_3height_3 );
                break;
            case 
    4:
                
    drawPointwidth_4height_4 );
                
    drawPointwidth_4height_3 );
                
    drawPointwidth_3height_4 );
                
    drawPointwidth_3height_3 );
                break;
            case 
    5:
                
    drawPointwidth_2height_2 );
                
    drawPointwidth_4height_4 );
                
    drawPointwidth_4height_3 );
                
    drawPointwidth_3height_4 );
                
    drawPointwidth_3height_3 );
                break;
            case 
    6:
                
    drawPointwidth_4height_4 );
                
    drawPointwidth_4height_2 );
                
    drawPointwidth_4height_3 );
                
    drawPointwidth_3height_4 );
                
    drawPointwidth_3height_2 );
                
    drawPointwidth_3height_3 );
                break;
        }
    }

    public function 
    drawPointx:uinty:uint ):void {
        
    graphics.drawCirclexyradius );

    Kommentar


    • #3
      blöde frage:

      warum lädt man nicht einfach eine fertige grafik, anstatt dauernd ein bild mit 1-6 punkten neu zu pinseln?
      Kissolino.com

      Kommentar


      • #4
        Original geschrieben von Wurzel
        blöde frage:

        warum lädt man nicht einfach eine fertige grafik, anstatt dauernd ein bild mit 1-6 punkten neu zu pinseln?
        OffTopic:
        Da frag' ich mich grad auch ... aber vielleicht weil jedes Mal neuzeichnen ist so cool

        Kommentar


        • #5
          Was ist ein Würfel?
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            warum lädt man nicht einfach eine fertige grafik, anstatt dauernd ein bild mit 1-6 punkten neu zu pinseln?
            Ist eindeutig cooler

            Nee, ich hab ein haufen von den bildchen und jetzt wollte ich die mal abschaffen....ewig rumsuchen, welches bildchen gehört zu welchem script.....ausserdem ist dieses PNG-Format auch wesentlich kleiner und grafisch perfekt...ganz zu schweigen von dem verwaschenen JPG-Format.


            @PHP-Desaster
            Das hatte ich auch so vor mit dem switch case, aber da brauche ich eben 6 mal den code und das ist dann schon etwas groß.

            Ich dachte man kann da sowas wie ne matrix machen, wird aber codemäßig auf die gleiche länge rauskommen, denke ich.

            Naja kann man nix machen
            Danke an die helfenden Hände
            ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

            Kommentar


            • #7
              Original geschrieben von RamonaS
              ...ewig rumsuchen, welches bildchen gehört zu welchem script.....
              ich hab mal gehört man können mit passenden Dateinamen und einer gewissen Ordnerstruktur dieses Problem lösen. Aber trotz langjähriger Erfahrung in diesem Business habe ich natürlich keine Ahnung. Es würde mir auch niemand glauben, dass solche Spielchen ein potentieller Performancekiller sind, weil ich noch nie einen Server gesehen habe, auf dem mehr als drei Leute gleichzeitig unterwegs sind.

              Schönen Feierabend ;-)
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Original geschrieben von RamonaS
                Ist eindeutig cooler

                Nee, ich hab ein haufen von den bildchen und jetzt wollte ich die mal abschaffen....ewig rumsuchen, welches bildchen gehört zu welchem script.....
                Wenn du ewig rumsuchen musst, würd ich an deiner Stelle mal die Ordnerstruktur überdenken.

                Kommentar


                • #9
                  Du kannst den Code zum Zeichnen eines Würfels doch wiederverwenden, indem du einen X- und Y-Offset mit hineinimplementierst.

                  Aber die anderen haben natürlich recht, vielleicht solltest du das Zeichnen lieber lassen und Bilder verwenden.

                  Kommentar


                  • #10
                    Ok also ich hab das jetzt so verstanden, wer die image-funktion von php benutzt bekommt grundsätzlich 239 jahre einzelhaft und muß in dieser zeit asp lernen :-)

                    Wer bilder braucht für captcha der soll sich 13 stück anfertigen und diese dann per zufall ausgeben.

                    Ordnerstruktur überdenken:
                    Ähmm hab ich doch, hab soweit alles bilderzeugs in einen einzigen ordner geworfen, dann weiß ich wo der kram zu finden ist....aber welches bildchen zu welchem script gehört weiß ich immer noch nicht.

                    wie soll ich ein bild so benennen das ich es zuordnen kann....einige bilder werden im kontakt.php, gaestebuch.php und in noch 3-10 anderen scripten benutzt...

                    Noting for notgood :-)
                    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                    Kommentar


                    • #11
                      Ok also ich hab das jetzt so verstanden, wer die image-funktion von php benutzt bekommt grundsätzlich 239 jahre einzelhaft und muß in dieser zeit asp lernen :-)
                      nur wenn sie exzessiv benutz wird
                      Wer bilder braucht für captcha der soll sich 13 stück anfertigen und diese dann per zufall ausgeben.
                      dafür gibt es andere lösungen. mit nur einem(!) bild
                      wie soll ich ein bild so benennen das ich es zuordnen kann....einige bilder werden im kontakt.php, gaestebuch.php und in noch 3-10 anderen scripten benutzt...
                      da muss man sich ggf. mal die mühe machen und aufräumen. unterordner wären eine lösung.

                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        nur wenn sie exzessiv benutz wird
                        Wird es ja nicht, es geht um die erzeugung eines einzigen bildes, da sind dann 3 solche würfelchen drinne.

                        Nachdem ich bei google-iamge sogar meine unwichtigen würfelbilder gefunden habe, dachte ich mir ich stell das mal ab :-)

                        dafür gibt es andere lösungen. mit nur einem(!) bild
                        Sag ich doch...meine idee wäre 1 bild statt 6 stück und bei jedem aufruf oder f5 sind da andere würfelzahlen drinn.

                        da muss man sich ggf. mal die mühe machen und aufräumen. unterordner wären eine lösung.
                        Das hatte ich soweit alles fertig, mit unzähligen unterordner und richtigem durcheinander!
                        Ich habe jetzt ein ordner der nennt sich module, und dort sind nur die php scripte drinn...alle bilder, smilies usw habe ich zentrall alle zusammen in einem einzigen ordner drin....da ist halt der nachteil, man weiß nicht immer welchers bild jetzt von wievielen scripten benutzt wird.....naja nach 2 wochen weiß ich das noch aber nach 2 monaten wirds langsam kritisch
                        ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                        Kommentar


                        • #13
                          wieviel langeweile kann man haben

                          hab grad mal quick and dirty ein script gebastelt, was einen würfel per zufall erstellt. das ganze könnte man jetzt noch strukturieren und in eine funktion bauen, aber dafür hab ich grad keine lust

                          PHP-Code:

                          $zahl
                          =mt_rand(1,6);

                          // positionen der Punkte
                          $w[1]=array(3,3);
                          $w[2]=array(3,9);
                          $w[3]=array(3,15);
                          $w[4]=array(13,3);
                          $w[5]=array(13,9);
                          $w[6]=array(13,15);
                          $w[7]=array(8,9);
                          // Zusammensetzen der Punkte
                          $dw[1]=7;
                          $dw[2]="1,6";
                          $dw[3]="1,6,7";
                          $dw[4]="1,3,4,6";
                          $dw[5]="1,3,4,6,7";
                          $dw[6]="1,2,3,4,5,6";

                          $wuerfel=explode(",",$dw[$zahl]);

                          Header("Content-type: image/png");
                          $image imagecreate(21,21);
                          $d=imagecolorallocate($image,255,255,255);
                          $c=imagecolorallocate($image,0,0,0);
                          imagealphablending($image1);
                          imagecolortransparent($image); 

                          for (
                          $i=0;$i<=count($wuerfel)-1;$i++)
                          {
                          $x=$w[$wuerfel[$i]][0];$y=$w[$wuerfel[$i]][1];
                          imagerectangle($image,0,0,20,20,$c);
                          imagefilledrectangle($image,$x,$y,$x+4,$y+2,$c);
                          imagefilledrectangle($image,$x+1,$y-1,$x+3,$y+3,$c);
                          }
                          imagepng($image,"./wuerfel.png");
                          readfile("./wuerfel.png"); 
                          Zuletzt geändert von ; 07.04.2009, 22:57.

                          Kommentar


                          • #14
                            Eine Minute googeln, 30 Sekunden programmieren. Fertig.
                            PHP-Code:
                            <?php
                            header
                            ('Location: http://www.random.org/dice/dice' rand(16) . '.png');
                            ?>
                            Würde mir die Grafiken natürlich auf den eigenen Server ziehen bzw. eigene erstellen und statt Location den richtigen Content-Type Header senden gefolgt von einem readfile(). Mehr Mühe ist die Sache doch nicht wert.

                            Kommentar


                            • #15
                              wo ist jetzt bitte der unterschied zu den eigenen bildern auf dem server, die der te ja nicht will?

                              Kommentar

                              Lädt...
                              X