游戏Java逻辑

时间:2019-05-29 21:07:37

标签: java

我需要做一个记忆文字游戏。 逻辑很简单:

  

玩家1输入一个单词:例如“ a”

     

玩家2输入相同的前一个字符,然后再输入另一个:“ ap”

     

玩家1保持安全性“ ap”,并添加其他字符,例如“ d”。玩家2输入:“ apd”

当一名玩家在顺序上出错时,游戏结束。

问题在于它不起作用,因为我必须输入新字符而不是整个序列

public static void main(String[] args) throws IOException, InterruptedException 
{
    //Las variables que he ocupado
        Thread t = null; //un hilo para hacer una pausa
        String secuencia; //la cadena que guarda la secuencia actual
        String entrada=""; //la cadena que el jugador colocara para comparar con la secuencia
        String nueva; //la nueva letra que el jugador ingresa
        int x=1,c=0; //x solo nos ayudara a saber que jugador esta en turno y c nos ayuda a terminar el juego
    //


    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.println("Empieza con la secuencia esribiendo una letra: "); //Jugador 1 empieza la secuencia
    secuencia = br.readLine();
    x++;
    do 
    {
        //Este for nos ayuda a "limpiar" la pantalla para evitar se vea la secuencia
            for(int i=0; i<15; i++)
            {
                System.out.println();
            }
        //

        //Aqui le mostramos al jugador en turno la secuecnia por 5 segundos antes de que se borre     
            System.out.println("Tienes 5 segundos para memorizar la secuencia: ");
            System.out.println(secuencia);
            t.sleep(5000); //este hilo hace la pause de 5 segundos y despues borra pantalla
            for(int i=0; i<15; i++)
            {
                System.out.println();
            }
        //
        if(x%2==0)
        {
            System.out.println("Jugador 2 escribe la secuencia: "); //si X es multiplo de 2 es el turno del jugador 2
        }
        else
        {
            System.out.println("Jugador 1 escribe la secuencia: ");//de lo contrario es turno del jugador 1
        }
        entrada = br.readLine();
        if(entrada.equals(secuencia))//comparo la entrada con la secuencia actual
        {
            System.out.println("Correcto, Escribe una nueva letra para la secuencia ");//si son iguales continua el juego agregando una nueva letra
            nueva = br.readLine();
            secuencia = entrada+nueva; //aqui la secuencia se modifica
            x++;
            c=1;//como ha acertado c es 1 por lo que el ciclo se repetira
        }
        else
        {
            c=0;//al equivocarse c valdra 0 por lo que el juego acaba
            if(x%2==0)
            {
                System.out.println("Error. Jugador 2 ha perdido, la secuencia era: "+secuencia);
            }
            else
            {
                System.out.println("Error. Jugador 1 ha perdido, la secuencia era: "+secuencia);
            }
        }
    } while (c==1);
}  

}

0 个答案:

没有答案