gpt4 book ai didi

Java硬编码重复过程

转载 作者:行者123 更新时间:2023-12-01 11:10:24 24 4
gpt4 key购买 nike

我正在制作一个基本的硬编码游戏,有 2 个用户互相战斗。我所有的方法都已设置并按预期工作。我现在试图在循环主硬代码后找出一种方法,提供再次战斗并继续游戏的选项,而不是在一场战斗后停止。

public static void main(String[] args) {

Scanner in = new Scanner(System.in);
System.out.print("What is your name: ");
String myName = in.nextLine();

Fighter a = new Warrior();
Fighter b = new Dragon();
a.pickOpponent(b);

a.setName(myName);
b.setName("Onyxia");

System.out.print(getWelcome());
while(in.hasNextLine())
{
switch(in.nextLine())
{
case "no":
System.out.println("Wow, you are not even gonna try, you have lost!");
break;
case "yes":
System.out.println("Let the fight begin! ");
while(a.isAlive() && b.isAlive())
{
System.out.println("Do you want to punch, kick, or headbutt the other fighter? ");
switch(in.nextLine())
{
case "punch":
System.out.println(a.getPunch(b));
System.out.println(b.getOpponentAttack(a));
break;
case "kick":
System.out.println(a.getKick(b));
System.out.println(b.getOpponentAttack(a));
break;
case "headbutt":
System.out.println(a.getHeadbutt(b));
System.out.println(b.getOpponentAttack(a));
break;
default :
System.out.println(invalidInput());
break;
}
}
default:
System.out.println(a.getWinner(b));
break;
}//end of first switch statement
}//end of first while loop
}//end of main

最佳答案

尝试将 main 中的所有代码移至新函数中。

您可以将该函数放入 main 方法中的 while 循环中,如下所示:

while(playGame()) {}

如果应该再次玩游戏,则让 playGame() 返回 true,如果应该结束,则返回 false

<小时/>

示例:

public static boolean playGame() {

Scanner in = new Scanner(System.in);
System.out.print("What is your name: ");
String myName = in.nextLine();

Fighter a = new Warrior();
Fighter b = new Dragon();
a.pickOpponent(b);

a.setName(myName);
b.setName("Onyxia");

System.out.print(getWelcome());
while(in.hasNextLine())
{
switch(in.nextLine())
{
case "no":
System.out.println("Wow, you are not even gonna try, you have lost!");
break;
case "yes":
System.out.println("Let the fight begin! ");
while(a.isAlive() && b.isAlive())
{
System.out.println("Do you want to punch, kick, or headbutt the other fighter? ");
switch(in.nextLine())
{
case "punch":
System.out.println(a.getPunch(b));
System.out.println(b.getOpponentAttack(a));
break;
case "kick":
System.out.println(a.getKick(b));
System.out.println(b.getOpponentAttack(a));
break;
case "headbutt":
System.out.println(a.getHeadbutt(b));
System.out.println(b.getOpponentAttack(a));
break;
default :
System.out.println(invalidInput());
break;
}
}
default:
System.out.println(a.getWinner(b));
break;
}//end of first switch statement
}//end of first while loop
}//end of playGame

public static void main(String[] args) {

while(playGame()) {}

}

关于Java硬编码重复过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32446493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com