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:
	
$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 )
 )
							
						
					 ,
,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%2 != 0){
                        $zeichen="-";
                    }else{
                        $zeichen=" ";
                    }
                    $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
 )
 )
							
						 
          
Kommentar