Как отобразить массивы в void функции - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь написать программу для создания простой игры Сапер, и я не уверен, из-за чего программа просто выдает пустую строку, но я собираюсь напечатать таблицу чисел для игры тральщика , Программа компилируется очень хорошо, даже если при запуске программы произошла ошибка перед строкой, в которой указано:

sh: pause: команда не найдена

Программа использует пустые функции, и я не уверен, как определить переменную, которая указывает на каждый квадрат на доске. Я надеюсь, что кто-то может помочь мне выяснить, в чем заключается ошибка в этом коде, который вызывает странное функционирование программы.

C ++

#include <iostream>
#include <iomanip>
#include <time.h>
#include <fstream>

using namespace std;

// Global Constants
const int MAX_ROWS = 10;
const int MAX_COLUMNS = 10;
const int EMPTY_SQUARE_DIGIT = 0;
const char EMPTY_SQUARE_SYMBOL = '_'; 
const int BOMB_DIGIT = -1;
const char BOMB_SYMBOL = '#';
char currentCell = 0;

// Function Prototypes
void fillTheGameBoard(int board[MAX_ROWS][MAX_COLUMNS]);
void displayTheGameBoard(int board[MAX_ROWS][MAX_COLUMNS]);
void insertTheMineClues(int board[MAX_ROWS][MAX_COLUMNS]);
void incrementTheNeighborSquares(int board[MAX_ROWS][MAX_COLUMNS], int row, int column);


// ############################################
int main(void)
{
int gameBoard[MAX_ROWS][MAX_COLUMNS];

srand(time(NULL));

fillTheGameBoard(gameBoard);

insertTheMineClues(gameBoard);

displayTheGameBoard(gameBoard);

system("pause");

return 0;
} // End main


// ############################################
void fillTheGameBoard(int board[MAX_ROWS][MAX_COLUMNS])
{
   for (int row = 0; row < MAX_ROWS; row++)
   {
      if ( (row >= 0) && (row < MAX_ROWS) )
      {
      for (int column = 0; column < MAX_COLUMNS; column++)
      {
         if (rand() % (MAX_ROWS - 3) == 0)
         {
            currentCell = BOMB_DIGIT;
         }
         else
         {
            currentCell = EMPTY_SQUARE_DIGIT;
         }
      }
      }
   }                    
} // End fillTheGameBoard


// ############################################
void displayTheGameBoard(int board[MAX_ROWS][MAX_COLUMNS])
{
   for (int row = 0; row < MAX_ROWS; row++)
   {
      if ( (row >= 0) && (row < MAX_ROWS) )
      {
      for (int column = 0; column < MAX_COLUMNS; column++)
      {
         if (currentCell == BOMB_DIGIT)
         {
            cout << BOMB_SYMBOL;
         }
         else if (currentCell == EMPTY_SQUARE_DIGIT)
         {
            cout << EMPTY_SQUARE_SYMBOL;
         }
         else
         {
            cout << currentCell;
         }
      }
      }
   }  
} // End displayTheGameBoard


// ############################################
void insertTheMineClues(int board[MAX_ROWS][MAX_COLUMNS])
{
     for (int row = 0; row < MAX_ROWS; row++)
      {
        if ( (row >= 0) && (row < MAX_ROWS) )
         {
         for (int column = 0; column < MAX_COLUMNS; column++)
            {
               if (currentCell == BOMB_DIGIT)
                  {
                     incrementTheNeighborSquares(board, row, column);
                  }
            }
         }   
      }               

} // End insertTheMineClues


// ############################################
// The function definition below is finished.  Make no changes to it.
void incrementTheNeighborSquares(int board[MAX_ROWS][MAX_COLUMNS], int bombRow, int bombColumn)
{
for (int row = bombRow - 1; row <= bombRow + 1; row++)
   {
   if ( (row >= 0) && (row < MAX_ROWS) )     
      {   
      for (int column = bombColumn - 1; column <= bombColumn + 1; column++)
         {
         if ( (column >= 0) && (column < MAX_COLUMNS) && (board[row][column] != BOMB_DIGIT) )      
            board[row][column]++;            
         } // End for column       
      } // End if   
   } // End for row
} // incrementTheNeighborSquares
...