如何根据用户输入进行不同的操作

时间:2015-06-19 19:34:39

标签: java string

我正在尝试制作一个非常简单的游戏(即使没有界面)。您应该键入要执行的操作(攻击或阻止),但我没有最佳时间尝试了解如何执行此操作。我希望它是这样的:如果用户输入攻击的地方是一个行动方案,它是阻止而不是另一个,是否我想让它回去询问该怎么做。

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)){

    }
    }
}

1 个答案:

答案 0 :(得分:0)

更改:

if (action.equals(attack))

到:

if (action.equals("attack"))

(对块动作检查也一样)

目前,您的String攻击未被设置为等于" attack"因为它没有被初始化,所以它只是一个空字符串。

注意:您还应该使用try / catch块来包围代码以实现异常处理(例如,当用户输入整数时,程序不会崩溃)。