我在互联网上搜索了几个小时,我找不到适合我的正确答案。
所以..我制作了一款名为'seabattle'的游戏 玩完该游戏后,控制台会再次提出问题。
System.out.println("Well done! " + whosturn.getName() + ". A ship down!" );
System.out.println("Hurraaaaaayyyyy, All boats down!!");
System.out.println("Do you want to play this game again? (y/n) ");
input = scanner.next().toLowerCase();
if(input == "y"){
System.out.println("The game should start again now..");
System.out.println("Butttttttt, I don't know how to...");
}
else{
System.out.println("Thank you for player Battleships!");
System.out.println("See you next time ;)");
}
}
else{
FiredPosition.setDisplayValue('*');
System.out.println("Good job, you hit a ship!");
switchTurn();
}
如果用户在控制台中键入y。游戏应该重新开始。
我读过有关Main(args)或类似内容的内容。这对我不起作用,因为这是另一个类。
我希望你们能帮帮我吗?
Ciaoo
答案 0 :(得分:1)
如果您的主要类SeaBattle目前是这样的:
public class SeaBattle {
public static void main(String[] args) {
...
}
}
您可以通过以下方式进行更改:
public class SeaBattle {
private static String[] args;
public static void run() {
//do the same than main() previously
}
public static void main(String[] args) {
SeaBattle.args = args;
run();
}
}
然后重新开始游戏,
SeaBattle.run();
答案 1 :(得分:1)
一个简单的答案是:无论你做什么来开始游戏,当你发现'y'时再做一次。
但是,更深入的答案涉及使用对象来存储和更新游戏状态,从您的描述中不完全清楚您当前是否正在执行此操作。因此,如果它是战舰类型的游戏,该对象可能包含游戏区域的2d数组,并且可能是存储轮到它的变量。这个对象有一个'初始化'方法,你随机选择船只在游戏区域的位置,设置轮到它的值等等。
你的主要方法会与这个对象互动,所以它会调用游戏对象的初始化方法,并且在每次转弯之后它会调用另一种方法(例如'isGameFinished')来检查游戏是否结束。 isGameFinished方法将检查所有船只是否已被销毁,如果是,则返回true。如果返回true,则会提示用户输入新游戏。如果他们输入'y',那么你可以创建一个全新的游戏状态对象,或者再次调用游戏状态的初始化方法。然后你将有一个新的游戏状态来开始一个新游戏。