zufall+schleifen+noten ^^

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

  • zufall+schleifen+noten ^^

    Hallo an die Forumsbenutzer ,
    ich schreibe gerade ein kleines Script (bzw die passende Klasse) um mir zufällige Notenlinien ausgeben zu lassen, allerdings läuft das nicht so ganz wie es soll ^^ Erstmal der Code der Probleme macht:

    PHP-Code:
        function MakeMatrix(){
            
    $arr=$this->noten;
            if(
    count($arr)>0){
                
    $matrix="";
                
    $x=9;
                
    $noten=$this->note2line($arr);
                
    $marked=array();
                while(
    $x>=1){
                    
    $y=1;
                    while(
    $y<=count($arr)){
                        if(
    $x%!= 0){
                            
    $zeichen="-";
                        }else{
                            
    $zeichen="&nbsp;";
                        }
                        
    $arr_temp=array_unique($noten);
                        
    $arr_temp_key=array_search($x,$arr_temp);
                        unset(
    $noten[$arr_temp_key]);
                        if((
    is_int($arr_temp_key)) && (is_bool(array_search($y,$marked)) &&
                        
    array_search($y,$marked)===false)){
                            
    $matrix.="o";
                            
    $marked[]=$y;
                        }else{
                            
    $matrix.="$zeichen";
                        }
                        if(
    $y==count($arr)){
                            
    $matrix.="<br />";
                        }
                        unset(
    $arr_temp,$arr_temp_key);
                        
    $y++;
                    }
                    
    $x--;
                }
                
    $this->matrix=$matrix;
                return 
    $marked;
            }
        } 

    $this->noten ist ein Array bestehend aus, naja, Noten halt ^^ z.B. d oder f, durch note2line wird ein Array erzeugt, dass zu jeder Note die Zeile zurückgibt, in der die Note auf Notenlinien stehen darf.

    die Ausgabe sollte ungefähr so aussehen:

    ---o---o-o
    o o
    --o-----o
    (usw) mit insgesamt 9 Zeilen (5 mit "-" 4 mit " ") sieht aber eher so aus:

    ---------
    o
    -o-------
    oo
    ---------

    ---------

    ---------
    es sind zu wenig Noten (eigentlich sollten es genug sein, damit jede Spalte eine Note hat) und jede Spalte darf nur eine Note haben :/

    ($marked wird nur zu Testzwecken zurückgegeben und die if-Anweisung ist wohl auch umständlicher als notwendig aber ich hab da dran einiges ausprobiert )
    =/\=

  • #2
    Re: zufall+schleifen+noten ^^

    PHP-Code:
    <html>
    <body>
    <pre>
    <?php
    shuffle
    ($noten range(0,8));

    for(
    $i=0$i<=8$i++) {
        
    $zeile '';
        
    $linienzeichen = ($i%2) ? '-' ' ';
        for(
    $j=0$j<=8$j++) {
            
    $zeile .= ($noten[$i] == $j) ? 'o' $linienzeichen;
        }
        echo 
    $zeile."\n";
            
    }
    ?>
    </pre>
    </body>
    </html>
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hm ich mag deinen Stil... und wenn das Script nicht noch ein paar Sachen dazu können müsste hätte ich das wohl auch ungefähr so geschrieben ^^
      naja werde das erstmal so zum Üben benutzen....
      aber wäre schon nicht schlecht mal zu erfahren wo denn der Fehler liegt
      =/\=

      Kommentar

      Lädt...
      X