Gentemmmm, me ajudem a criar um programa em Java para um jogo

O jogo

Você está preso em um lugar estranho com uma pessoa aleatória, que parece SUSPEITO e tenta manter distância entre você e ele. Você tem que encontrá-lo e perguntar o que está acontecendo. Tente navegar através dos obstáculos para alcançar o sus man em movimento.

Regras

O mapa é um 10x10 tabuleiro, onde cada bloco de grade é um bloco de parede ou um bloco de chão. Cada personagem, você e o sus man, só pode se mover em 4 direções - diretoACIMA,ABAIXO,ESQUERDA,CERTO. Em cada turno, um movimento legal é mover-se nessas 4 direções por 1 bloco de comprimento sem acabar entrando em um bloco de parede ou saindo da borda do mapa.

Entrada de inicialização

Antes de fazer o primeiro turno, você recebe uma entrada de 11 linhas. A primeira linha é um inteiro k representando depois de quantas voltas o sus man fará outro movimento. As próximas 10 linhas são uma 10x10 matriz bidimensional de caracteres. '*'representa um bloco de parede e '-'representa um bloco de piso. Os caracteres maiúsculos 'P'representam seu local de desova e 'E'representam o local de desova do sus man.

Entrada para uma jogada de jogo

No início de cada turno, você receberá uma entrada contendo 2 números inteiros na mesma linha, eneY e eneX, representando, respectivamente, as coordenadas vertical e horizontal do sus man. Se o sus man estiver no canto superior esquerdo do mapa, ambos eneY e eneX deve ter o valor 0. Se sus man fo rABAIXOpara um comprimento de bloco,eneY aumentará para 1. Se sus man for para DIREITA um comprimento de bloco, eneX aumentará para 1.

O sus man fará um movimento em resposta ao seu movimento, mas com um tempo de espera .k turnos após o último movimento do homem sus, o homem sus fará outro movimento. No primeiro turno, sus man sempre faz um movimento. Quando sus man faz um movimento, ele fica AINDA ou vai ACIMA,ABAIXO,ESQUERDA, ou DIREITA por uma distância de 1 quarteirão. Dentre essas 5 escolhas, sus man sempre fará aquela que resultar na maior distância do jogador nesse turno.

Saída

Para terminar um turno, você deve inserir um caractere maiúsculo de 'U', 'D', 'L', 'R'para indicar seu movimento de ir respectivamenteACIMA, ABAIXO, ESQUERDA, ou DIREITA para uma distância de 1 comprimento de bloco.

Saída Errada

  • Depois de fazer o movimento, você está dentro de um bloco de chão ou fora do limite (neste caso, sua coordenada x ou y é negativa ou estritamente maior que 9).

  • Não exibindo um caractere maiúsculo 'U', 'D', 'L', 'R'.

Regras de especialista

O algoritmo para o sus man é burro e sempre há uma maneira de alcançá-lo.

Condições de vitória

  • Depois de fazer o movimento de virada (quando o sus man ainda não respondeu), o bloco de chão atual em que você está compartilha um lado com o bloco de chão atual do sus man.

Condições de Perda

  • Exceder o limite de 100 voltas.
  • Sair do limite (a coordenada x ou y é negativa ou estritamente maior que 9)
  • Fique dentro de um wallblock

Restrições

0 <eneY< 10
0 <eneX< 10
0 <k< 4

O JOGO JÁ ME DEU ISSO DE CÓDIGO:
import java.util.;
import java.io.
;
import java.math.*;

/**

  • catch up and win
    **/
    class Player {

    public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    int K = in.nextInt();
    if (in.hasNextLine()) {
    in.nextLine();
    }
    for (int i = 0; i < 10; i++) {
    String s = in.nextLine();
    }

     // game loop
     while (true) {
         int eneY = in.nextInt(); 
         int eneX = in.nextInt();
     }
    

    }
    }

Por que esse laço está lendo dois int?

eneY
ene X
são as coordenadas que o sus man e o jogador podem andar
image

Mas o enunciado não fala em nenhum momento que você precisa ler a coordenada X nem a coordenada Y.
O enunciado diz que para se movimentar tem que inserir 'U' , 'D' , 'L' , 'R' para indicar seu movimento.

O código que você postou tem cara de ser apenas um chute.
Sugiro que você explique quais são suas dúvidas específicas.

1 curtida