Вертикальный вывод
Допустим мне нужно вывести таблицу 500 на 500 клеток, размер одной клетки 2х1, пишем функцию вывода(упрощенно):
void mapPrint() {
int column, row;
for (column = -1; column < MAPSIZE; ++column) {
if (column == -1) {
write(" ");
for (int t = column + 1; t < MAPSIZE; t++)
writef("%02d", t + 1);
writeln();
++column;
}
for (row = -1; row < MAPSIZE; ++row) {
if (row == -1) {
writef("%03d", column);
++row;
}
if (worldMap[column][row].localityType == "desert")
write(COLORDESERT,'D',' ',DEFAULT);
else if (worldMap[column][row].localityType == "bank")
write(COLORBANK,'B',' ',DEFAULT);
else (worldMap[column][row].localityType == "shoal")
write(COLORSHOAL,'S',' ',DEFAULT);
}
writeln();
}
write(DEFAULT);
}
Выводит:
01020304050607080910
000D D S S W W W W W W
001D D S S W W W W W W
002D B S S S W W W W S
003P B S S S W W W S S
004P B B S S S W W S S
005P P B B S S S S S S
006P P P B B S S S S S
007P P F B B B B B B B
008M F F F F F F B B B
009M M F F F F F F B B
Надо:
0 0 0 0 0 0 0 0 0 0 и
0 0 0 0 0 0 0 0 0 1 т.
1 2 3 4 5 6 7 8 9 0 д.
000D D S S W W W W W W
001D D S S W W W W W W
002D B S S S W W W W S
003P B S S S W W W S S
004P B B S S S W W S S
005P P B B S S S S S S
006P P P B B S S S S S
007P P F B B B B B B B
008M F F F F F F B B B
009M M F F F F F F B B
Все нормально, пока количество колонок таблицы меньше 101, но когда x становится больше 100, цифры, указывающие на номер столбца, съезжают =\
Помогите, как выводить вертикально? По разрядам?
Кусок текста написан на Ди, примеры на Си принимаются.
Отлично, вот вся функция, если кому надо...
void mapPrint() {
int column, row;
for (column = -1; column < MAPSIZE; ++column) {
if (column == -1) {
write(" ");
for (int t = column + 1; t < MAPSIZE; t++)
writef("%d ", ((t%1000)/100));
writeln();
write(" ");
for (int t = column + 1; t < MAPSIZE; t++)
writef("%d ", ((t%100)/10));
writeln();
write(" ");
for (int t = column + 1; t < MAPSIZE; t++)
writef("%d ", (t%10));
writeln();
++column;
}
for (row = -1; row < MAPSIZE; ++row) {
if (row == -1) {
writef("%03d", column);
++row;
}
if (worldMap[column][row].localityType == "desert")
write(COLORDESERT,'D',' ',DEFAULT);
else if (worldMap[column][row].localityType == "bank")
write(COLORBANK,'B',' ',DEFAULT);
else if (worldMap[column][row].localityType == "forest")
write(COLORFOREST,'F',' ',DEFAULT);
else if (worldMap[column][row].localityType == "mountains")
write(COLORMOUNTAINS,'M',' ',DEFAULT);
else if (worldMap[column][row].localityType == "plain")
write(COLORPLAIN,'P',' ',DEFAULT);
else if (worldMap[column][row].localityType == "water")
write(COLORWATER,'W',' ',DEFAULT);
else if (worldMap[column][row].localityType == "shoal")
write(COLORSHOAL,'S',' ',DEFAULT);
}
writeln();
}
write(DEFAULT);
}
Выводит такое:
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
000D D S S W W W W W W
001D D S S W W W W W W
002D B S S S W W W W S
003P B S S S W W W S S
004P B B S S S W W S S
005P P B B S S S S S S
006P P P B B S S S S S
007P P F B B B B B B B
008M F F F F F F B B B
009M M F F F F F F B B
Спасибо!
Источник: Stack Overflow на русском