ASCII ausgabe!!
-
gelöscht
-
Schlaftänzer schrieb:
hmm... funktioniert auch nicht. Gibt immernoch die 32 anstatt ein Leerzeichen aus. Stimmt die Formatierung eventuell nicht?
das ist tatsächlich mekrwürdig. Vielleicht probierst du es so:
if (e == 4) /*schreibt Leerzeichen wenn e = 4 ist*/ { matrix[b][i] = ' '; mvprintw(x,y," "); refresh(); }
-
gelöscht
-
Statt
for(j = 0; j <= 35; j++) /*schreibt Bildschirm mit Einsen und Nullen voll*/ { for(i = 0; i <= 99; i++)
benutze
for(j = 0; j <= LINES; j++) /*schreibt Bildschirm mit Einsen und Nullen voll*/ { for(i = 0; i <= COLS; i++)
-
mvprintw(x,y,"%c",matrix[j][0]); ... mvprintw(x,y,"%c",matrix[j][0]);
Sind deine Matrixeinträge Zahlen oder Zeichen?
asd
-
Ich meinte natürlich
mvprintw(x,y,"%c",matrix[j][0]); mvprintw(x,y,"%d",matrix[j][0]);
asd
-
asd schrieb:
Ich meinte natürlich
mvprintw(x,y,"%c",matrix[j][0]); mvprintw(x,y,"%d",matrix[j][0]);
asd
siehe oben, es sind ints. Aber das ist kein Problem, dafür gibt es das %c.
-
supertux schrieb:
siehe oben, es sind ints. Aber das ist kein Problem, dafür gibt es das %c.
Das meinte ich nicht.
Schlaftänzer benutzt an der stelle wo das Leerzeichen eingefügt werden soll %c.
Direkt danach beim verschieben der Spalte benutzt er aber %d.Daher meine Frage ob die Matrixeinträge als Buchstaben oder Zahlen gemeint sind.
asd
-
Die Matrix soll Nullen, Einsen und ab und zu Leerzeichen ausgeben, wie im Quelltext beschrieben.
Schlaftänzer
-
yeah...danke asd!!
do { y1 = rand() % 99; y2 = rand() % 99; y3 = rand() % 99; c = 1; for(n = 0; n <= 30; n++) { if (c == 1) y = y1; if (c == 2) y == y2; if (c == 3) { y = y3; c = 0; } x = 0; zeichen2 = rand() % 2; /*schreibt 0 oder 1 in Zeile 0 und Spalten 1-99*/ matrix[b][i] = zeichen2; mvprintw(x,y, "%d",matrix[b][i]); refresh(); e = rand() % 15; if (e == 4) /*schreibt Leerzeichen wenn e = 4*/ { matrix[b][0] = zeichen3; mvprintw(x,y,"%c",matrix[b][0]); refresh(); } for(j = 35; j >= 0; j--) /*verschiebt Spalte nach unten*/ { l = j - 1; x = j; if (j == 0) l = 0; matrix[j][0] = matrix[l][0]; if (matrix[l][0] == 32) mvprintw(x,y,"%c",matrix[j][0]); else mvprintw(x,y,"%d",matrix[j][0]); refresh(); } for(k = 0; k <= 5000000; k++); c++; } }while(getch() == ERR);
Schlaftänzer
-
mach statt
if (matrix[l][0] == 32)
if (matrix[l][0] == ' ')
1. ==32 ist nicht portabel. Zwar ist es auf den meisten Architekturen ' ' == 32, muss aber nicht sein.
2. ein == ' ' erhöht die Lesbarkeit des Codes, besonders hilfreich, wenn man debuggen muss oder Fragen im Forum stellt.