Java ArrayList和其他东西
我开始做我的第一个java项目,这是一个非常基本的角色扮演游戏,当然没有gui。现在我正在研究咒语。我创建的法术类包括名称、效果和成本。我创建了SpellsList类,它应该包括所有法术。我有一个特效类,它描述了这个法术的特效,现在只是测试。当施法者施放法术时,我想获得相关的法术效果,因此相关的效果会照顾到法术的效果,我稍后会处理这些效果,现在只是为了测试。我有一个掷骰子的滚筒,但现在没关系 我有几个问题: 代码怎么了? 为什么公共静态字符串[]args{至关重要? 你会用更好的方式施法吗Java ArrayList和其他东西,java,arraylist,iterator,Java,Arraylist,Iterator,我开始做我的第一个java项目,这是一个非常基本的角色扮演游戏,当然没有gui。现在我正在研究咒语。我创建的法术类包括名称、效果和成本。我创建了SpellsList类,它应该包括所有法术。我有一个特效类,它描述了这个法术的特效,现在只是测试。当施法者施放法术时,我想获得相关的法术效果,因此相关的效果会照顾到法术的效果,我稍后会处理这些效果,现在只是为了测试。我有一个掷骰子的滚筒,但现在没关系 我有几个问题: 代码怎么了? 为什么公共静态字符串[]args{至关重要? 你会用更好的方式施法吗 pu
public class Spell {
private String name;
private String effect;
private int cost;
Spell(String name, String effect, int cost){
this.name = name;
this.effect = effect;
this.cost = cost;
}
String getSpellName(){
return name;
}
String getEffect(){
return effect;
}
int getCost(){
return cost;
}
}
}
}
}在主方法中有一个名为getSpellEffect的方法。方法中不能有方法。检查
有什么问题?和public static void mainString[]args{是程序的入口点,您必须从某个地方开始。代码现在有什么错误\问题?运行时会发生什么?您的代码没有平衡的{和}数。请尝试使用IDE或任何其他可以为您缩进代码的编辑器正确缩进它。这里可能有一些{丢失了,在我的代码中没有问题。问题是getSpellEffect,我在声明行上得到表达式的非法开始,在这个方法中,spellsList和Spell显示在redI创建的一个主类中,它只包含公共静态void mainString[]参数{,并且省略了SpellList类中的行,但是我在向列表添加对象时遇到了一个问题add是红色的。我如何解决这个问题?虽然代码可以改进,但是由于您仍在开发,您可以尝试上面提到的代码吗?我修改了SpellsList类,当我使用您的代码时,我在for循环中得到了一个错误,java无法解决找不到symbol spellsList…..是否可以将main方法移动到main类?当我在无法使用add之前这样做时,您知道为什么吗?是否将spellsList变量移动到main方法上方并将其声明为静态。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class SpellsList {
public static void main(String[] args) {
List<Spell> spellsList = new ArrayList<Spell>();
spellsList.add(new Spell("Fireball", "damage", 5));
spellsList.add(new Spell("Ice Storm", "damage", 8));
spellsList.add(new Spell("Heal", "heal", 8));
static String getSpellEffect(String spellName) {
for (Iterator iter = spellsList.iterator(); iter.hasNext(); ) {
if (iter.next().equals(spellName)) {
iter.next().Spell.getEffect();
break;
}
}
}
}
public class Effects {
int damage(int n, int dice, int bonus){
int damage = Dice.roll(n,dice,bonus);
System.out.println("You dealt" + damage + "damage to the enemy!");
return damage;
}
int heal(int n, int dice, int bonus){
int heal = Dice.roll(n,dice,bonus);
System.out.println("You healed" + heal + " hit points!");
return heal;
}
public class Dice {
public static int roll(int dice){
int sum = 1 + (int)(Math.random() * ((dice - 1) + 1));
return sum;
}
public static int roll(int n, int dice){
int sum = 0;
for (int i = 0; i < n; i++) {
sum += 1 + (int)(Math.random() * ((dice - 1) + 1));
}
return sum;
}
public static int roll(int n, int dice, int bonus){
int sum = 0;
for (int i = 0; i < n; i++) {
sum += 1 + (int)(Math.random() * ((dice - 1) + 1));
}
return (sum + n*bonus);
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class SpellsList {
static List<Spell> spellsList = new ArrayList<Spell>();
static {
spellsList.add(new Spell("Fireball", "damage", 5));
spellsList.add(new Spell("Ice Storm", "damage", 8));
spellsList.add(new Spell("Heal", "heal", 8));
}
static String getSpellEffect(String spellName) {
String spellEffect = "";
for (Iterator<Spell> iter = spellsList.iterator(); iter.hasNext();) {
Spell spell = iter.next();
if (spellName.equals(spell.getSpellName())) {
spellEffect = spell.getEffect();
break;
}
}
return spellEffect;
}
}
public class Main {
public static void main(String[] args) {
System.out.println(SpellsList.getSpellEffect("Fireball"));
}
}