Sorry if I am making no sense, I dont have much practise
Hello, I have set up Items to hold a set of chars which are meant to be placed on a text based map, however when i am asking for the char, there is an error stating that it must be a string type. Is there any way to convert my Items to strings, or allow the input of an Item? Thanks in advance
The error is where the user is trying to enter a symbol. I understand i may be able to use string.valueof, however im unsure where to implement it.
//imports
import java.util.Scanner;
import java.util.Random;
public class main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
ABug[] BugObj = new ABug[4]; //Creating object BugObj of class ABug
int loop = 4;
int i = 0;
int cycles;
MyClass worldnew = new MyClass();
System.out.println("Please enter the number of cycles you wish to run:");
cycles = reader.nextInt(); //getting the amount of cycles to be run
System.out.print("____Current World____\n\n");
worldnew.printWorld(); //calling method to print out world
System.out.println("____Key____\n_F_ - Food\n_O_ - Object\n_ _ - Space\nSymbol - Bug");
do{
BugObj[i] = new ABug(); //creating instance
System.out.print("Please enter the symbol which you wish to represent the bug:");
BugObj[i].symbol = reader.next();
System.out.print("Please enter the name of the bug:");
BugObj[i].name = reader.next();
System.out.println("Please enter the species of the bug:");
BugObj[i].species = reader.next();
System.out.println("Please enter the horizontal position of the bug:");
BugObj[i].horpos = reader.nextInt();
System.out.println("Please enter the vertical postion of the bug:");
BugObj[i].vertpos = reader.nextInt();
System.out.println("_______________ Bug " +(+i+1) + " _______________\n" );
System.out.println("Symbol: " + BugObj[i].symbol); //Printing bug information out
System.out.println("Name: " + BugObj[i].name);
System.out.println("Species: " + BugObj[i].species);
System.out.println("Horizontal Position: " + BugObj[i].horpos);
System.out.println("Vertical Postion: " + BugObj[i].vertpos + "\n\n");
move(BugObj[i], worldnew);
i++;
System.out.println("Would you like to enter another bug? \n 0-No, 1-Yes\n");
loop = reader.nextInt();
}while(loop == 1);
}
public static void move(ABug bug, MyClass worldnew){
Scanner reader = new Scanner(System.in);
System.out.println("Would you like this bug to move?\n 0-No, 1-Yes\n");
if (reader.nextInt() == 0)
{
System.exit(0);
}
int x = bug.horpos;
int y = bug.vertpos;
Item a = bug.symbol;
worldnew.setMap(x,y,bug.symbol);
worldnew.printWorld();
//get corordinate of bug
//set map[coor] = symbol
//print out map
//int r = (int) (Math.random() * (2- -2)) + -2;
//int originalHorpos = bug.horpos;
//int originalVertpos = bug.vertpos;
//bug.horpos = originalHorpos + r;
//bug.vertpos = originalVertpos + r;
//bug.horpos += r;
//bug.vertpos += r;
System.out.println("New Horizontal Position: " +bug.horpos );
System.out.println("New Vertical Postion: " +bug.vertpos);
}
}
enum Item {
OBJECT ('O'),FOOD ('F'), SPACE (' ');
private final char symbol;
Item(char symbol) {
this.symbol = symbol;
}
char getSymbol() { return symbol; }
}
class MyClass {
public void setMap(int x, int y, Item symbol)
{
this.map[x][y] = symbol;
}
Item[][] map = new Item[15][25];
public void printWorld() {
int v, h; //v - vert, h - hor
for (v=1; v<=15; ++v)
{
for (h=1; h<=25; ++h)
{
final Item[] items = {Item.OBJECT, Item.FOOD, Item.SPACE, Item.SPACE, Item.SPACE, Item.SPACE, Item.SPACE, Item.SPACE};
Random random = new Random();
int selection = random.nextInt(items.length);
map[v-1][h-1] = items[selection];
System.out.print(map[v-1][h-1].getSymbol() + "_");
}
System.out.printf("\n");
}
}
}
class ABug { //ABug class
int horpos, vertpos, energy, id;
String species, name;
Item symbol;
}