Der Rückfall auf die Viertel - Teil I

Kuckucksei 1 des Tages 17-03-2019

Der erste, noch unbeholfene Versuch:

 

Code-Schnippsel

...
## Array-Einträge kriegen Kuckucksei "Notenlängen-Änderung" untergejubelt

### Instrument 1

my $arrays_inst1_ref = notevalue_change(\@arrays_inst1);
@arrays_inst1 = ();
@arrays_inst1 = @$arrays_inst1_ref;

### Instrument 2

my $arrays_inst2_ref = notevalue_change(\@arrays_inst2);
@arrays_inst2 = ();
@arrays_inst2 = @$arrays_inst2_ref;

### Instrument 3

my $arrays_inst3_ref = notevalue_change(\@arrays_inst3);
@arrays_inst3 = ();
@arrays_inst3 = @$arrays_inst3_ref;
...
# Subroutine Notevalue-Array transformieren ( Kuckuckseiprinzip )

sub notevalue_change {
    print "\nSubroutine notevalue_change!\n\n";
    my $arrays_instx_ref = shift;
    my @arrays_instx = @$arrays_instx_ref;
    my @arrays_instx_new;
    foreach ( @arrays_instx ) {
        my $array_temp_ref = $_;
        print "\nArray: $array_temp_ref\n\n";
        my $aenderung_choice = int rand (2);
        if ( $aenderung_choice == 0 ) {
            print "Es findet keine Änderung statt!\n";
            my @array_temp = @$array_temp_ref;
            push @arrays_instx_new, [@array_temp];
            next
        }
        my @array_temp_new;
        my @array_temp_new_changed;
        my $duration_old;
        my $type_old;
        foreach ( @$array_temp_ref ) {
            my $zeile = $_;
            print "Zeile: $zeile\n";
            if ( $zeile =~ m/<duration>/ ) { $duration_old = $zeile }
            if ( $zeile =~ m/<type>/ ) { $type_old = $zeile }
            push @array_temp_new, $zeile;
        }
        print "Alter Notenwert-Eintrag, Dauer: $duration_old\n";
        print "Alter Notenwert-Eintrag, Typ: $type_old\n";
        my $duration_value = $duration_old;
        my $type_value = $type_old;
        $duration_value =~ s/.*<duration>(.*)<\/duration>.*/$1/;
        $type_value =~ s/.*<type>(.*)<\/type>.*/$1/;
        print "Alter Notenwert, Dauer: $duration_value\n";
        print "Alter Notenwert, Typ: $type_value\n";
        if ( $duration_value eq "2" && $type_value eq 'half' ) {
            my $duration_new = $duration_old;
            $duration_new =~ s/(.*<duration>).*(<\/duration>.*)/$1X1X$2/;
            $duration_new =~ s/X//g;
            my $type_new = $type_old;
            $type_new =~ s/(.*<type>).*(<\/type>.*)/$1quarter$2/;
            print "Neuer Notenwert, Dauer: $duration_new\n";
            print "Neuer Notenwert, Typ: $type_new\n";
            foreach ( @array_temp_new ) {
                my $zeile = $_;
                print "Zeile vor Änderung: $zeile\n";
                if ( $_ =~ m/<duration>/ ) { $_ = $duration_new }
                if ( $_ =~ m/<type>/ ) { $_ = $type_new }
                print "Zeile nach Änderung: $zeile\n";
                push @array_temp_new_changed, $zeile;               
            }
            map { map { push @array_temp_new_changed, $_ } @array_temp_new } 1..2;
        } elsif ( $duration_value eq "4" && $type_value eq 'whole' ) {
            my $duration_new = $duration_old;
            $duration_new =~ s/(.*<duration>).*(<\/duration>.*)/$1X1X$2/;
            $duration_new =~ s/X//g;
            my $type_new = $type_old;
            $type_new =~ s/(.*<type>).*(<\/type>.*)/$1quarter$2/;
            print "Neuer Notenwert, Dauer: $duration_new\n";
            print "Neuer Notenwert, Typ: $type_new\n";
            foreach ( @array_temp_new ) {
                my $zeile = $_;
                print "Zeile vor Änderung: $zeile\n";
                if ( $zeile =~ m/<duration>/ ) { $zeile = $duration_new }
                if ( $zeile =~ m/<type>/ ) { $zeile = $type_new }
                print "Zeile nach Änderung: $zeile\n";
                push @array_temp_new_changed, $zeile;
            }
            map { push @arrays_instx_new, [@array_temp_new_changed] } 1..4;
        }       
    }
    return \@arrays_instx_new
}
...

 

Ergebnis

Ich gebe es bekannt, noch bevor ich selbst es gehört habe.*



Vielleicht ist es komplett mißlungen.

Oh, ja. Es sieht mißlungen aus, lol.

Misti, misti auf der Skiabfahrtslaufsteilhangpisti.



Don't mess with the Kuckucksei, or what?



... ( denk, denk, denk ) ...



Zu unordentlich ( und falsch ) !

Neue Ausgangsbasis:

 

Code

 
# Subroutine Notevalue-Array transformieren ( Kuckuckseiprinzip )

sub notevalue_change {
   
    print "\nSubroutine notevalue_change!\n\n";
    my $arrays_instx_ref = shift;
    my @arrays_instx = @$arrays_instx_ref;
    my @arrays_instx_new;
    my @array_durations;
    my @array_types;
   
    # Feststellen der Notenwerte
   
    foreach ( @arrays_instx ) {
       
        my $array_temp_ref = $_;
        print "\nArray: $array_temp_ref\n\n";
        my @array_temp = @$array_temp_ref;       
       
        my $duration_value;
        my $type_value;
        my $duration_old;
        my $duration_new;
        my $type_old;
        my $type_new;
           
        foreach ( @array_temp ) {
           
            my $zeile = $_;           
           
            print "Zeile: $zeile\n";
           
            if ( $zeile =~ m/<duration>/ ) { $duration_old = $zeile; $duration_new = $zeile }
            if ( $zeile =~ m/<type>/ ) { $type_old = $zeile; $type_new = $zeile }           
                                   
        }
       
        print "Alter Notenwert-Eintrag, Dauer: $duration_old\n";
        print "Alter Notenwert-Eintrag, Typ: $type_old\n";
       
        $duration_value = $duration_old;
        $type_value = $type_old;
        $duration_value =~ s/.*<duration>(.*)<\/duration>.*/$1/;
        $type_value =~ s/.*<type>(.*)<\/type>.*/$1/;
        print "Alter Notenwert, Dauer: $duration_value\n";
        print "Alter Notenwert, Typ: $type_value\n";
       
        push @array_durations, $duration_value;
        push @array_types, $type_value;
               
    }
   
    # Änderungen - falls stattfinden - entsprechend der Notenwerte
   
    my $array_count = 0;
   
    foreach ( @arrays_instx ) {
       
        my $array_temp_ref = $_;
        my @array_temp = @$array_temp_ref;
       
        print "\nArray-Eintrag $array_count, Noten-Dauer: $array_durations[$array_count]\n";
        print "Array-Eintrag $array_count, Noten-Typ: $array_types[$array_count]\n";
   
        my $aenderung_choice = int rand (2);
        if ( $aenderung_choice == 0 ) {
            print "Es findet keine Änderung statt!\n";
            push @arrays_instx_new, [@array_temp]       
        } else {
            print "Es wird geändert!\n";
            push @arrays_instx_new, [@array_temp]
        }
       
        $array_count++
       
    }
   
    return \@arrays_instx_new
   
}


Damit geht's später weiter. Genüßlich, langsam & easy und eins nach dem anderen.





* Weil's grade einfacher ist für mich.

Kommentare

Beliebte Posts aus diesem Blog

·

Es brennt.

Bye, bye Nord Stream 2!