首页 > 解决方案 > 2048 Java 游戏:移动功能

问题描述

我重新创建了 2048 游戏。我只有一个问题。当用户输入与移动对应的字母时,它应该朝那个方向移动,打印游戏板并停止,直到用户再次输入一个字母。我使用 switch 语句来执行此操作,但是当用户输入例如“R”时,循环就会继续进行。我的意思是程序打印游戏板并且它不会停止。我该如何阻止它?

boolean play = true;
while (play == true)
{
    boolean canMove = false;
    switch(answer)
    {
        case "U":
            canMove = moveUp(board,dimension);
            break;
        case "D":
            canMove = moveDown(board,dimension);
            break;
        case "R":
            canMove = moveRight(board,dimension);
            break;
        case "L":
            canMove = moveLeft(board,dimension);
            break;
        default:
            System.out.println("Invalid input. Try again.");
            printBoard(board,dimension);
            answer = in.next();
            break;
    }

标签: java

解决方案


声明play保留在 上true。当用户输入字符时,语句仍然留给true. 由于没有其他用户输入行,程序陷入循环。

在我看来,要解决这个问题,您应该while (play == true)在.play = false;break;


推荐阅读