Я относительно новичок в Java, и мне назначен проект.Мне нужно сделать довольно сложную (для новичка) игру на линкоре.
Здесь я пытаюсь вызвать переключение дел в классе Player из класса Tile.Поскольку я читал, что нельзя напрямую получить доступ к переключателю, я сделал методы caseSea (), caseShip () и т. Д.
. При попытке вызвать их в классе Player я получаю 'void'не допускается здесь ошибка, которую я понимаю, но не знаю, как исправить!Спасибо за любую помощь, спасибо!
Вот класс Tile, созданный для представления одного блока двумерного массива, который станет доской поля битвы:
public class Tile
{
private int x,y;
static boolean hidden;
public Action tile_action;
public enum Action
{
Sea,
Ship,
Hit,
Miss
}
Action action;
public Tile(Action action)
{
this.action=action;
this.x = x;
this.y = y;
this.tile_action = action;
}
public static void caseSea()
{
System.out.println("~");
}
public static void caseShip()
{
if(hidden == true)
System.out.println("~");
else
System.out.println("s");
}
public static void caseHit()
{
System.out.println("X");
}
public static void caseMiss()
{
System.out.println("O");
}
public static void draw(Action action)
{
switch(action)
{
case Sea:
caseSea();
break;
case Ship:
caseShip();
break;
case Hit:
caseHit();
break;
case Miss:
caseMiss();
break;
}
}
}
Также вот класс Player, который содержитвызов случая переключения:
import java.util.Scanner;
public class Player
{
String username; //Variable declaration
static int shotcount;
static int misscount;
static int hitcount;
static int repeatshot;
private int HitPosition[][] = new int[10][10];
public Player(String username)
{
this.username = username;
}
private void placeAllShips()
{
//super.placeAllShips();
}
public void fire(int pos[],int board,boolean hit)
{
if(hit == true)
{
HitPosition[pos[0]][pos[1]] = Tile.draw(Tile.caseHit());
shotcount++;
hitcount++;
}
else
{
HitPosition[pos[0]][pos[1]] = Tile.draw(Tile.caseMiss());
shotcount++;
misscount++;
}
}
}
Я получаю ошибку, о которой упоминал выше, в Tile.draw(Tile.caseHit())
и Tile.draw(Tile.caseMiss())