Question & Answer: One java method test run I need help with… Java bug, would love some help……..

One java method test run I need help with… Java bug, would love some help…

So basically the program is trying to create a 2d array that is filled with 4 randomly placed fish, which looks like: ><))”>, 1 fish hook(J), and 6 fish food (*) and the rest of the characters are filled with ~ or water characters. And every time I run to test that the method placeObjectInTank() method correctly adds a fish at the specified position, I get the test feedback of “Failed to call method Main.placeObjectInTank(String, class [[C, Integer, Integer).” I would love to understand how I can fix this.

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)

placeObjectInTank(“><))’>”, tilde, fish[i][0], fish[i][1]);

moveAllObjects(fish, 1, 0, 8, 32);

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

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

placeObjectInTank(“J”, tilde, fishHook[i][0], fishHook[i][1]);

moveAllObjects(fishHook, 0, 1, 8, 32);

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

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

placeObjectInTank(“*”, tilde, fishFood[i][0], fishFood[i][1]);

moveAllObjects(fishFood, -1, -1, 8, 32);

 

renderTank(tilde);

}

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] = water;

}

 

System.out.println();

}

}

 

public static void placeObjectInTank(String object, char [][] positionInTank, int column, int row)

{

object.charAt(object.length() – 1);

int k = row;

for (int i = object.length() – 1; i >= 0; –i) {

positionInTank[column][k] = object.charAt(i);

k–;

if (k < 0) {

k = positionInTank[0].length-1; //looks at first row and finds first row

}

}

}

 

 

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 [][] randomPositions = new int [number][2]; //number of fish with coordinates

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

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

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

 

}

 

return randomPositions;

}

 

public static void moveAllObjects(int[][] positions, int dx, int dy, int width, int height)

{

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

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

 

}

}

}

Expert Answer

 

update- FIXED code

import java.util.*;
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)
placeObjectInTank(“><))’>”, tilde, fish[i][0], fish[i][1]);
moveAllObjects(fish, 1, 0, 8, 32);
int fishHook [][] = generateRandomPositions(1, 8, 32);
for (int i = 0; i < fishHook.length; ++i)
placeObjectInTank(“J”, tilde, fishHook[i][0], fishHook[i][1]);
moveAllObjects(fishHook, 0, 1, 8, 32);
int fishFood [][] = generateRandomPositions(6, 8, 32);
for (int i = 0; i < fishFood.length; ++i)
placeObjectInTank(“*”, tilde, fishFood[i][0], fishFood[i][1]);
moveAllObjects(fishFood, -1, -1, 8, 32);

renderTank(tilde);
}
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] = water;
}

System.out.println();
}
}

public static void placeObjectInTank(String object, char [][] positionInTank, int column, int row)
{
object.charAt(object.length() – 1);
int k = row;
for (int i = object.length() – 1; i >= 0; –i) {
positionInTank[column][k] = object.charAt(i);
k–;
if (k < 0) {
k = positionInTank[0].length-1; //looks at first row and finds first row
}
}
}

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 [][] randomPositions = new int [number][2]; //number of fish with coordinates
for (int i = 0; i < number; ++i) {

randomPositions [i][0] =(int) (Math.random() * width) + 0;
randomPositions [i][1] =(int) (Math.random() * height) + 0;

}

return randomPositions;
}

public static void moveAllObjects(int[][] positions, int dx, int dy, int width, int height)
{
for (int i = 0; i < positions.length; i++) {
positions[i][1] = (positions[i][1] + 1) % width;

}
}
}

OUTPUT:

Still stressed from student homework?
Get quality assistance from academic writers!