Делаем простую шахматную доску - PullRequest
0 голосов
/ 02 марта 2011

Мне нужна помощь / подсказки при печати шахматной доски на языке C.

Я хочу напечатать шахматную доску 4x4 следующим образом:

+----+
|    |
|    |
|    |
+----+

Естественно, это только 1x1, но я не знаю, как сделать 4x4.

Я знаю, что для этого нужно использовать какой-то вложенный цикл for. Я также должен хранить его в массиве. Все, что у меня есть, это:

#include <stdio.h>
#include <string.h>

char board[4][4];

int main() {

    for (int i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            board[i][j] = 
        }
    }

Я не знаю, как бы я хранил коробку 1x1 на доске [1] [1], а затем снова на доске [2] [2] ... вы поняли ... Можете ли вы, ребята, пожалуйста помогите как это сделать?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Учтите, что для каждой строки выведите +, а затем ----+ для каждого столбца (или | и пробелов):

+----+----+----+ ... ----+
|    |    |    | ...     |
.
.
.
|    |    |    | ...     |
+----+----+----+ ... ----+
|    |    |    | ...     |

и т. Д.

Также подумайте, нужно ли вам хранить состояние платы или рисунок доски в ваших массивах. Состояние платы будет легче анализировать (и использовать меньше памяти). Когда вам нужно «красиво напечатать» доску, вы можете сгенерировать рисунок из массива состояния платы.

1 голос
/ 04 марта 2011

Доска выглядит так:

+---+---+
|   |   |
+---+---+
|   |   |

и т.д.

Я бы сначала напечатал несколько разделительных элементов:

while(i < n){
   printf("+---");
   i++;
}
printf("+\n");

Чем несколько ячеек:

while(i < n){
printf("| %c ", currcell);
   i++;
} 
printf("|\n")

где char curcell будет вашим board[i],[j] - пробел по умолчанию.

Извините, если это не выглядит достаточно ясно, я очень новичок в программировании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...