problem mit arrays... runtime-error!



  • hallo
    ich habe ein xmax x ymax feld d.h. ein char feld[x][y], in denen ich chars reinschreiben kann...
    und das ganze ist jetz mit verschieden chars belegt...

    jetz sollen aber bestimmte felder ihre koordinaten ändern und das gesamzfeld wird danach neu geprintet!
    das ganze hab ich mit einer for-schleife gemacht mit t als zeit-variable

    nur hab ich jetz da ein prob:

    hier erstma der codeausschnitt:

    for (int t=0; t<=30; t++)
    {
    for (y=0; y<ymax; y++)
    for (x=0; x<xmax; x++)
    {
    if (t <= 10) {yt = y-1; xt = x;}
    if (t>10 && t<=20) {yt = y; xt = x-1;}
    if (t>20) {yt = y; xt = x+1;}

    if (feld[x][y] == '-')
    {feld[x][y] = '\0';
    feld[xt][yt] = '-';}
    if (feld[x][y] == '|')
    {feld[x][y] = '\0';
    feld[xt][yt] = '|';}
    if (feld[x][y] == '+')
    {feld[x][y] = '\0';
    feld[xt][yt] = '+';}
    }

    Sleep(100);
    colcout.clrscr();
    for (x=0;x<xmax;x++)
    for (y=0;y<ymax;y++)
    {printf("%c", feld[x][y]);}
    }
    ----------------------------------------

    das prob ist xt = x+1 macht einen runtime-error, was ich nich verstehe, da
    es sich um ein feld handelt, das ja innerhalb der xmax und ymax grenzen liegt!
    wenn es heissen würde [xmax+1][y] dann machts peng, is klar!

    also es geht nur feld[x-1][y] oder feld[x][y-1]...
    d.h. ich kann mich nur nach links oder nach oben bewegen!
    bei den anderen varianten gibts einen crash

    warum?
    die felder, die er löschen bzw. verschieben soll, liegen genau in der mitte :

    '...................
    .................
    ...................
    .......+-|.........
    ...................
    ...................
    ...*...............'

    so sieht das zwar net aus aber ums zu verdeutlichen...
    ich kann jetz das +-| nach links oder nach oben bewegen lassen...
    nach unten will er nich... nach unten wäre dann +1 für jedes t in der ersten for-schleife...
    ich mein ich denk mal dass er auch nur das bestimmte feld verschieben will und nicht alle...
    das gesamte terrain ist übrigens 45 x 45 chars groß

    würd mich freuen , wenn mir jemand eine idee geben kann, wie ich das problem
    oben im code lösen soll...

    mfg

    [ Dieser Beitrag wurde am 07.02.2003 um 13:33 Uhr von Hammer editiert. ]



  • Hi,
    überlege mal, was ist wenn x oder y 0 ist????

    Alexander Sulfrian



  • 0?

    feld[0-1][0-1] geht nich ,das is klar?..

    aber[0+1][0+1] muss gehen

    ich hänge...
    k.a.


Anmelden zum Antworten