КОНТЕКСТ:
Здравствуйте, я пытаюсь напечатать доску Connect 4x6, где каждая секция |___|
с тремя подчеркиваниями.Я хочу, чтобы каждый центр подчеркивал элемент 2D-массива, чтобы я мог позже обновить его.
CONFLICT:
Я не получаю ошибок или предупреждений, но мойвывод просто |________ ...
с бесконечным количеством подчеркиваний.Я успешно переписал код, где печатаются три подчеркивания без назначения центра в массиве (однако, очевидно, что этот код бесполезен для создания реальной игры, так как я не могу обновить подчеркивания центра).Все объявления цикла в моем текущем коде были использованы в этом успешном варианте, так что я уверен, что это не моя проблема.Я также могу предоставить этот код, если вы думаете, что он может вам помочь.Что я знаю, так это то, что colCnt (количество столбцов) увеличивается на единицу, а undCnt (количество подчеркиваний) застревает на 2. Из-за этого я подозреваю, что этот цикл for является основной проблемой в моем коде, однако я не знаю, где:
// Only print `_` three times as long as there have been 7 total or less vertical lines printed
for (int undCnt = 0; undCnt < 3 && vertCnt <= 6; undCnt++)
{
// Print left and right sections as `_`
if(undCnt != 1)
{
printf("_");
// If printing left section, increment column count
if(undCnt = 1){colCnt++;}
}
// Assign middle section to board array and prints it as `_`
else if(undCnt == 1)
{
arr[rowCnt][colCnt] = '_';
printf("%c", arr[rowCnt][colCnt]);
}
}
КОД:
#include <stdio.h>
void PrintBoard(char arr[6][7]);
int main()
{
// Declaration of 7x6 2D board array: board[row][col]
char board[6][7];
PrintBoard(board);
return 0;
}
void PrintBoard(char arr[6][7])
{
int vertCnt = 0; // Counts vertical lines (8 per row, separates sections)
int undCnt = 0; // Counts underscores (3 per section)
int rowCnt = 0; // Counts rows (6 total)
int colCnt = 0; // Count columns (7 total)
// Print game title
printf(" ~~ CONNECT FOUR ~~\n\n");
for (int rowCnt = 0; rowCnt <= 6; rowCnt++)
{
// If current row is not the first, start it on a new line
if (rowCnt > 0)
{
printf("\n");
}
// Creation of row: |___|___|___|___|___|___|___|
for (int vertCnt = 0; vertCnt < 8; vertCnt++)
{
printf("|");
// Only print `_` three times as long as there have been 7 total or less vertical lines printed
for (int undCnt = 0; undCnt < 3 && vertCnt <= 6; undCnt++)
{
// Print left and right sections as `_`
if(undCnt != 1)
{
printf("_");
// If printing left section, increment column count
if(undCnt = 1){colCnt++;}
}
// Assign middle section to board array and prints it as `_`
else if(undCnt == 1)
{
arr[rowCnt][colCnt] = '_';
printf("%c", arr[rowCnt][colCnt]);
}
}
}
}
// Print column numbers
printf("\n 1 2 3 4 5 6 7\n\n");
/* HOW THE BOARD SHOULD LOOK:
~~ CONNECT FOUR ~~ <--- GAME TITLE
|___|___|___|___|___|___|___|
|___|___|___|___|___|___|___|
|___|___|___|___|___|___|___| <--- BOARD
|___|___|___|___|___|___|___|
|___|___|___|___|___|___|___|
|___|___|___|___|___|___|___|
1 2 3 4 5 6 7 <--- COLUMN NUMBERS
*/
}
Если у вас есть какие-либо вопросы, просто дайте мне знать.Спасибо!