bewegter ablauf im feld[x][y] darstellen
-
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-variablenur 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 crashwarum?
mfg
[ Dieser Beitrag wurde am 05.02.2003 um 23:10 Uhr von Hammer editiert. ]
-
[ Dieser Beitrag wurde am 05.02.2003 um 23:11 Uhr von Hammer editiert. ]
-
array index fängt immer bei 0 an zu zählen.
int feld[10];
feld hat dann 10 Elemente feld[0]-feld[9]. feld[10] ist ausserhalb des Bereichs.
-
aarg.. aber das feld[xmax][ymax] ist 45 mal 45 groß !
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 mittlere ding 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...[ Dieser Beitrag wurde am 06.02.2003 um 15:09 Uhr von Hammer editiert. ]