I\'m having trouble with my return statement in the \'next()\' method. I\'m tryi
ID: 3630984 • Letter: I
Question
I'm having trouble with my return statement in the 'next()' method. I'm trying to return the 2d array 'gameBoard'. Can you see what the issue is? I highlighted the 'next' method in blue.
//-----------------------------------------code---------------------------------------
import java.io.*;
import java.util.Scanner;
/////////////////////////////////////////////////////////////
class Hw09
{
public static void main(String [] args) throws Exception
{
Board b = new Board(50,50);
b.next();
b.print();
}
}// end class Hw09
/////////////////////////////////////////////////////////////
class Board
{
private char[][] gameBoard;
private int rmax;
private int cmax;
//-------------------------------------------------------------------------------------
public Board (int rmax, int cmax)
{
char[][] gameBoard = new char[rmax][cmax];
for (int row = 0; row < rmax; row++)
{
for(int col = 0; col < cmax; col++)
gameBoard[row][col] = 0;
}
for (int row = 20; row < 31; row++)
{
for(int col = 20; col < 31; col++)
gameBoard[row][col] = 1;
}
this.rmax = rmax;
this.cmax = cmax;
}
//------------------------------------------------------------------------------------
public void print()
{
for (int row = 0; row < rmax; row++)
{
for(int col = 0; col < cmax; col++)
System.out.println(gameBoard[row][col]);
}
}
//------------------------------------------------------------------------------------
public void print(char char0, char char1)
{
for (int row = 0; row < rmax; row++)
{
for (int col = 0; col < cmax; col++)
{
if (gameBoard[row][col] == 0)
{
gameBoard[row][col] = char0;
System.out.println(gameBoard[row][col]);
}
if (gameBoard[row][col] == 1)
{
gameBoard[row][col] = char1;
System.out.println(gameBoard[row][col]);
}
}
}
}
//--------------------------------------------------------------------------------------
public Board next()
{
for (int row = 0; row < rmax; row++)
{
for(int col = 0; col < cmax; col++)
{
int sum = (gameBoard[row-1][col-1]+gameBoard[row-1][col]+
gameBoard[row-1][col+1]+gameBoard[row][col-1]+
gameBoard[row] [col+1]+gameBoard[row+1][col-1]+
gameBoard[row+1][col]+gameBoard[row+1][col+1]);
if (sum < 2 || sum > 3)
reset(row,col);
if (sum == 3)
set(row,col);
}
}
return gameBoard;
}
//-------------------------------------------------------------------------------------
public void set ( int r, int c) {gameBoard[r][c] = 1;}
//------------------------------------------------------------------------------------
public void reset ( int r, int c) {gameBoard[r][c] = 0;}
Explanation / Answer
gameBoard is a 2d array so if you want to return it, you need to have the same returnValueType for your next() method which is char[][] in this case. Thus said, do this: public char[][] next() { // code goes here return gameBoard; }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.