depilación con cera:
Recientemente he comenzado a desarrollar una básica "acorazado" juego en Java .
Ya he creado el campo de juego que contiene la posición de cada barco. Ahora, me gustaría que el usuario pueda proporcionar el programa con una coordenada. Si la pregunta de coordenadas en se solapa con la posición de un buque, de ese buque debe ser retirado de la ships
cola.
Ya he probado a cabo la Scanner
clase en el java.util
paquete en vano. Sería muy bueno si alguien podría por favor me ayude con la interpretación de una de coordenadas bidimensionales en una corriente basada en texto. La sintaxis de una coordenada debe ser de la siguiente manera: x, y
. Bastante sencillo, ¿verdad?
public static void main(String[] args)
{
// Position ships.
Scanner scanner = new Scanner(System.in).next();
List<Point> ships = new ArrayList<>(5);
ships.add(new Point(2, 1));
ships.add(new Point(3, 2));
ships.add(new Point(10, 4));
ships.add(new Point(7, 6));
ships.add(new Point(8, 4));
while(true)
{
// Check status.
if(ships.length > 0)
{
// Check if a field is containing a ship.
for(int y = 0; y < 10; y++)
{
for(int x = 0; x < 40; x++)
{
if (ships.contains(new Point(x, y)))
{
System.out.print('S');
}
else
{
System.out.print('.');
}
}
System.out.println();
}
// TODO: Query the input of the user.
final String input = scanner.next();
}
else
{
System.out.println("You won the game!");
break;
}
}
}
Detalles y:
- Crear un escáner objeto de conseguir la entrada de jugador
- Leer valores x e y
- Comprobar si se golpea o no
Pista: Poner los pasos 2 y 3 en un bucle
public static void main(String[] args) {
Point[] shipPositions = new Point[5];
shipPositions[0] = new Point(2, 1);
shipPositions[1] = new Point(3, 2);
shipPositions[2] = new Point(10, 4);
shipPositions[3] = new Point(7, 6);
shipPositions[4] = new Point(8, 4);
//Player input
System.out.println("Coordinates needed");
Scanner in = new Scanner(System.in);
int x, y;
System.out.print("x=");
x = in.nextInt();
System.out.print("y=");
y = in.nextInt();
Point p = new Point(x, y);
if (Arrays.asList(shipPositions).contains(p)) {
System.out.print("Hit");
} else {
System.out.print("Miss");
}
}
Ejemplo
Coordinates needed
x=2
y=1
Hit