#c
#c
Вопрос:
Я изучаю C в университете, и мы получили наш первый проект по созданию игры scrabble.
У меня проблемы с таблицами, так как я пытаюсь напечатать таблицу поверх другой, чтобы поместить несколько / разных символов в 1 «ячейку». Я знаю, что это невозможно с обычной таблицей, но я мог бы создать 2 разные таблицы и просто распечатать их друг над другом, так что, похоже, в одной ячейке 2 разных символа.
Это моя первая таблица:
и это то, как я хочу, чтобы это выглядело:
Я пытаюсь сделать так, чтобы она выглядела как вторая с цифрами от 1 до 15 слева и буквами в том же пространстве, что и специальные символы amp;, %, …
Код, который я использую для печати первой таблицы:
//Affichage du tableau
for (i=0; i<16; i )
{
for(j=0; j<16; j )
{
printf(" %c ", tab[i][j]);
}
printf("n");
}
Комментарии:
1. Я предполагаю, что это что-то вроде двойной оценки слов и тому подобное. Вы могли бы создать первую таблицу и использовать ее в качестве подстановки при печати окончательной таблицы. Если в таблице поиска есть специальный символ, вы печатаете его, а затем букву, если она есть.
Ответ №1:
Простой подход был бы примерно таким:
- Предполагая, что в
''
качестве символа используются 2 таблицы символов, когда вы не хотите ничего печатать.#определить МАКСИМУМ 3
char tab1[MAX][MAX] = {{'a', 'b', 0}, {'amp;', 0, '#'}, {0, '8', 'V'}};
char tab2[MAX][MAX] = {{'amp;', 0, '#'}, {0, '8', 'V'}, {'a', 'b', 0}};
// or any table you have
for (int i = 0; i < MAX; i )
{
printf("-|", i 1); // if you want the line number
for (int j = 0; j < MAX; j )
{
if (tab1[i][j] != '')
printf("%c", tab1[i][j]);
else
printf(" ");
if (tab2[i][j] != '')
printf("%c", tab2[i][j]);
else
printf(" ");
}
printf("n");
}
And you can easily adjust the spacing in the print statements.
This will print:
1|aamp;b #
2|amp; 8#V
3| a8bV
Комментарии:
1. Я бы порекомендовал вам немного поработать с инструкцией printf , поскольку она может быть очень универсальной.
2.
printf("%c%c",(tab1[i][j] != '')?tab1[i][j]:" ", (tab2[i][j] != '')?tab2[i][j]:" ")
возможно3. Если вы идете по этому пути, просто вырежьте
!= ''
, поскольку''
это целочисленное0
значение и его можно использовать как таковое