我正在尝试制作一种神奇宝贝类型的游戏,以测试我的新手编码技能。但是我遇到了一个问题。

如果我按原样运行该程序,则将弹出一个窗口,其中会弹出两种攻击(Tackle和Thunder Shock)。单击一次即可解决问题,但需要单击两次Thunder Thunder;我猜这是因为在两个if中都使用了pikaAtkType()

我需要将方法中的“已选择”字符串与消息框进行比较,以使其正常工作。

我的问题是,如何从pikaAtkType()方法访问“已选择”并将其放入if语句中,这样我就可以比较消息框的输入而不必两次为Thunder Shock按下“ OK”。 (我想以一种简单的方式做到这一点;我并不是最擅长编码的人。)

if (Encounter().equals("Attack")) {
    if (pikaAtkType().equals("Tackle")) {
        pikaDMG = 3;
    } else if (pikaAtkType().equals("Thunder Shock")) {
        pikaDMG = 4;
    }
}


方法pikaAtkType()(请记住,这些只是代码的一部分):

static String pikaAtkType() {
    String[] choices = {"Tackle", "Thunder Shock", "", ""};
    String picked = (String)JOptionPane.showInputDialog(
        null,
        "Select Attack: ",
        "Attack!",
        JOptionPane.QUESTION_MESSAGE,
        null,
        choices,
        choices[0]);
    return picked;
}

最佳答案

如果我理解您的问题,一种解决方案是获取“攻击”一次并将其存储在局部变量中。就像是,

if (Encounter ().equals ("Attack"))
{
  String attack = pikaAtkType ();
  if (attack.equals ("Tackle"))
  {
    pikaDMG = 3;
  }
  else if (attack.equals ("Thunder Shock"))
  {
    pikaDMG = 4;
  }

09-25 20:25