### I need advice for this 2D array program?

closed account (LN3RX9L8)
I wrote the following code as 1D array now I have to convert everything and make it a 2D array:

 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768`` ``````#include #include using namespace std; int main() { srand (time(NULL)); const int SIZE= 10; char board [SIZE]; int answer; fill(board, board+10, 'O'); const int TOTAL_ATTEMPTS = 3; int attempts = TOTAL_ATTEMPTS; int index = rand() % 10; cout<<"Let's Play Battleship!!" << endl; for (int i=0; i> answer; if (board[answer]=='X') { cout <<"You already guessed that location landlubber!"<< endl; cout <<"Enter a guess from 0 to 10: "; cin >> answer; } if (answer >= 0 && answer <= SIZE) { board[answer] = 'X'; } for (int i=0; i

Last edited on
I think if you are doing an assignment like this you should be able to figure it out, however if I had a nickel for every time I got irked cos someone told me that and said nothing...I'd have like 50 bucks.

 ``1234567891011121314151617181920`` ``````#define BOARD_SIZE 25 //The board size (^2) char boardSquares[BOARD_SIZE][BOARD_SIZE]; for(int x=0;x<=BOARD_SIZE;x++) { for(int y=0;y<=BOARD_SIZE;y++) { //Get a random number, and once found if(getRandomNumber(odds))//Something to figure out if that square should be a ship { boardSquares[x][y]='X';//If so, then we put a ship } else{ boardSquares[x][y]='O';//Otherwise its an empty space } } } ``````

Let me know if that helps.
Last edited on
closed account (LN3RX9L8)
@MajorTom

Well I am a beginner and in my first class of programming and I really appreciate your help... But I am stuck can you help me?

This is what I have so far
 ``12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758`` ``````#include #include using namespace std; const int S=4;// can't change size once declared. Global any fucntion can use this v. void init_board(char nums [][S]); int main() { srand (time(NULL)); int indexrow = rand() % 10; int indexcolumn=rand() % 10; int row, column; char ocean[S] [S]; cout<< "Let's Play Battleship!!!"<< endl; init_board(ocean); cout<<"Enter a guess for the boat row: "<> row; cout<<"Enter a guess for the boat column:" <> column; return 0; } void init_board(char nums [][S])/// function defen { for (int i=0; i<4; i++) { for(int j=0; j<4; j++) { nums[i] [j]='O'; cout<< nums[i][j]<< " "; } cout<< endl; } }``````
Are there compile errors? If so what line? If not what is your question?
One thing, is for the size of the board I would use a #define S 4 instead of const int S=4;
#define is called a preprocessor directive, and basically it replaces every usage of S in your code with 4.
closed account (Dy7SLyTq)
but a const int would only replace one? const ints are much better because #defines can be very dangerous
Topic archived. No new replies allowed.