我正在尝试制作一种神奇宝贝类型的游戏,以测试我的新手编码技能。但是我遇到了一个问题。
如果我按原样运行该程序,则将弹出一个窗口,其中会弹出两种攻击(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;
}