如何最终确定游戏能够启动另一个游戏?

时间:2013-05-24 13:17:26

标签: java swing

我正在和Swing一起玩游戏。

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

为了重新开始游戏,我有一个菜单,允许您返回主菜单并开始另一个游戏。问题是最后一场比赛没有结束,参加请愿的while(true)方法的main被卡在执行游戏的功能中。

如果我完成上一场正常比赛,那么该功能结束,while(true)方法的main已准备好参加更多新游戏。

如何强制上一场比赛结束?

3 个答案:

答案 0 :(得分: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 ...
} 

答案 1 :(得分:1)

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

while(!gameRestarted || lastGameFinished)

答案 2 :(得分:0)

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

如果您需要在游戏处于活动状态时运行线程,则应在用户启动游戏时启动新的Thread

如果用户通过在当前游戏正常结束之前开始新游戏来中断游戏,则需要告诉当前游戏它应该完成,然后你只需为新游戏产生一个新线程。