hilfe bei fehlersuche und codeoptimierung



  • hallo ich hab folgendes vor:
    es existiert ein 2D bool feld ( dynamisch erstellt )
    m1[][] und m2[][] ( m2 ist eine teemporäre kopie )

    nun hab ich noch ein feld shift[] mit länge x (m1[x][y]) , also so lang wie
    m1[][] in x richtung.

    Nun will ich das m1 feld um "shift[x]" positionen in y richtung rotieren und hab das so realisiert aber irgendwie will es nicht

    for(int x=0;x<Width;x++)
    for(int y=0;y<Height;y++)
    {
    int temp = y-shift[x]; // index berechnen
    if(temp<0)m1[x][y] = m2[x][Height+temp-1]; // falls der index < 0 wird
    else m1[x][y]=m2[x][temp]; // ansonsten wird der index genommen
    }
    for(int x=0;x<Width;x++) // kopie aktualisieren
    for(int y=0;y<Height;y++)
    m2[x][y]=m1[x][y];

    Nochmal zu meinem vorhaben :

    m[3][3] = 1,2,3
    2,3,4
    3,4,5

    shift[3] = 1,2,3

    als ergebnis will ich folgendes
    m[3][3] = 3,3,3
    1,4,4
    2,2,5



  • so ist ne bessere sicht

    m[3][3] =

    1,2,3
    2,3,4
    3,4,5

    shift[3] = 1,2,3

    als ergebnis will ich folgendes
    m[3][3] =

    3,3,3
    1,4,4
    2,2,5


Anmelden zum Antworten