Java 硬编码重复过程
Java hardcoded repeating process
我正在制作一个基本的硬编码游戏,其中有 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()
return 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()) {}
}
我会把 while(true)
放在 System.out.print(getWelcome());
上面,然后在你关闭 main 之前关闭它。然后你可以问用户类似
System.out.println("Dare yie try again?");
String answer = in.nextLine();
if(answer.equals("yes"))
break; //which would break out of the while loop.
我正在制作一个基本的硬编码游戏,其中有 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()
return 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()) {}
}
我会把 while(true)
放在 System.out.print(getWelcome());
上面,然后在你关闭 main 之前关闭它。然后你可以问用户类似
System.out.println("Dare yie try again?");
String answer = in.nextLine();
if(answer.equals("yes"))
break; //which would break out of the while loop.