Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Java reusing methods to generate random position. Okay so my program is creating a 2D array fish tank (8 rows, 32 columns) filled with tilde

Java reusing methods to generate random position. Okay so my program is creating a 2D array fish tank (8 rows, 32 columns) filled with tilde (~) characters with 4 randomly generated positions of fish ( ><))'> ), 6 pieces of fish good (*) and a hook (J). My code so far has the fish, but I am still trying to find out how I can reuse the generateRandomPositions() method to generate myself the fish food and hook. I have // the parts I thought I would need to add in order to do this.

import java.util.Random;

public class Main {

public static void main(String[] args) {

char [][] tilde = new char [8][32];

fillTank(tilde, '~');

int fish [][] = generateRandomPositions(4, 8, 32);

for (int i = 0; i < fish.length; ++i) {

placeFishInTank(tilde, fish[i][0], fish[i][1]);

}

renderTank(tilde);

System.out.println();

moveAllFish(fish, tilde[0].length, tilde.length);

fillTank(tilde, '~');

System.out.println();

for (int i = 0; i < fish.length; ++i) {

placeFishInTank(tilde, fish[i][0], fish[i][1]);

}

renderTank(tilde);

// int fishHook [][] = generateRandomPositions(1, 8, 32);

// int fishFood [][] = generateRandomPositions(6, 8, 32);

}

/**

* Copies the water character into every position in the tank array. The two-dimensional tank

* array can have dimensions of any size(s).

*

* @param tank will contain all water characters after this method is called.

* @param water is the character copied into the tank.

*/

public static void fillTank(char[][] tank, char water)

{

for (int row = 0; row < tank.length; ++row) {

for (int column = 0; column < tank[row].length; ++column) {

tank [row][column] = '~';

}

System.out.println();

}

}

public static void placeFishInTank(char [][] positionInTank, int x, int y)

{

positionInTank[x][y] = '>';

String fishBody = "><))\'";

char[] fishBodyArray = fishBody.toCharArray();

int j = 4;

for (int i = y - 1; i >= 0 && j >= 0; i--) {

positionInTank[x][i] = fishBodyArray[j];

j--;

}

}

/**

* Prints the contents of the tank into the console in row major order, so that the

* smallest row indexes are on top and the smallest column indexes are on the left. For

* example:

* tank[0][0] tank[0][1] tank[0][2] ...

* tank[1][0] tank[1][1] tank[1][2] ...

* ...

* Each row is on its own line, and this method should work for two-dimensional tanks with

* dimensions of any size.

*

* @param tank contains the characters that will be printed to the console.

*/

public static void renderTank(char[][] tank)

{

for (int row = 0; row < tank.length; ++row) {

for (int column = 0; column < tank[row].length; ++column) {

System.out.print(tank[row][column]);

}

System.out.println();

}

}

public static int[][] generateRandomPositions(int number, int width, int height)

{

int [][] fish = new int [number][2];

for (int i = 0; i < number; ++i) {

fish [i][0] = Utility.randomInt(width);

fish [i][1] = Utility.randomInt(height);

}

return fish;

// int [][] fishHook = new int [number][2];

// for (int i = 0; i < number; ++i) {

// fish [i][0] = Utility.randomInt(width);

// fish [i][1] = Utility.randomInt(height);

// }

// return fishHook;

// int [][] fishFood = new int [number][2];

// for (int i = 0; i < number; ++i) {

// fish [i][0] = Utility.randomInt(width);

// fish [i][1] = Utility.randomInt(height);

// }

// return fishFood;

//

}

public static void moveAllFish(int[][] fish, int width, int height) {

for (int i = 0; i < fish.length; i++) {

fish[i][1] = (fish[i][1] + 1) % width;

}

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Professional IPhone And IPad Database Application Programming

Authors: Patrick Alessi

1st Edition

0470636173, 978-0470636176

More Books

Students also viewed these Databases questions