Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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; }

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote