我正在尝试制作一个非常简单的游戏(即使没有界面)。您应该键入要执行的操作(攻击或阻止),但我没有最佳时间尝试了解如何执行此操作。我希望它是这样的:如果用户输入攻击的地方是一个行动方案,它是阻止而不是另一个,是否我想让它回去询问该怎么做。
import java.util.Scanner;
public class Game {
public static void main(String[] args){
int hp = 10; //Not used yet
int enemy_hp = 10;
String attack;
String block;
int enemy_action = (int) (Math.random() * 1); //Not used yet
int your_block_chance1 = (int) (Math.random() * 1);//Not used yet
Scanner userInput = new Scanner (System.in);
System.out.println("It is your turn, attack or try to block");
String action = userInput.next();
System.out.println(action);
if (action.equals(attack)){
System.out.print("You attacked your enemy and ");
int enemy_block_chance1 = (int) (Math.random() * 3);
if (enemy_block_chance1 == 1) {
System.out.print("he blocked it");
}
else if (enemy_block_chance1 != 1){
enemy_hp = enemy_hp - 2;
System.out.print("managed to hit, now his hp is " +enemy_hp);
}
}
else if (action.equals(block)){
}
}
}
答案 0 :(得分:0)
更改:
if (action.equals(attack))
到:
if (action.equals("attack"))
(对块动作检查也一样)
目前,您的String攻击未被设置为等于" attack"因为它没有被初始化,所以它只是一个空字符串。
注意:您还应该使用try / catch块来包围代码以实现异常处理(例如,当用户输入整数时,程序不会崩溃)。