-1

我正在用 Swing 做游戏。

它从一个main方法开始,while(true)每次用户想要开始一个新游戏时都会等待。

为了重新开始游戏,我有一个菜单,可让您返回主菜单并开始另一个游戏。问题是最后一场比赛没有完成,参加请愿while(true)main方法卡在执行比赛的函数中。

如果我 FINISH 上一场比赛正常玩,则函数结束,while(true)main方法的 准备参加更多的新游戏。

如何强制结束最后一场比赛?

4

3 回答 3

2

用于break退出while(true)循环。

while (true) {
    System.out.println("Choose a game mode 1-start normal, 2-start hard, 3-exit");
    Scanner scan = new Scanner(System.in);
    String input = scan.nextLine();
    if (input.equals("3")) {
       break;
    } else if (input.equals("2")) {
       startGameInHard();
    } // else if ...
} 
于 2013-05-24T13:20:47.913 回答
1

一种方法可能是不拥有while(true),而是拥有while(condition)where 条件可能是您的功能逻辑:

while(!gameRestarted || lastGameFinished)
于 2013-05-24T13:22:23.300 回答
0

Swing 是一个 IoC(控制反转)框架,这意味着您应该main在创建主窗口后让您返回。

如果您需要在游戏处于活动状态时运行线程,您应该Thread在用户开始游戏时启动一个新线程。

如果用户在当前游戏正常完成之前通过启动新游戏来中断游戏,您需要告诉当前游戏它应该完成,然后您只需为新游戏生成一个新线程。

于 2013-05-24T13:50:32.567 回答