目前将学习 Java 作为一种爱好,并且正在制作小型游戏项目以强化这些概念。所以对于这个,我创建了一个方法来创建一个对象数组,在这个例子中是一个“计算机”对象。我这样做是因为我希望用户在启动时决定他们想要对抗的计算机对手数量,而不是硬编码一组数量。现在我想为每个 Computer 对象分配和检索一个值。例如,计算机名称、下注金额和掷骰子猜测。
public class Computer {
static int bet;
static int guess;
int cash;
static Computer[] c;
public static void create(int numComps) {
c = new Computer[numComps];
for (int i = 0; i < numComps; i++) {
c[i] = new Computer();
c[i].cash = Game.startCash;
c[i].bet = bet();
c[i].guess = guess();
c[i].display();
}
}
public static int bet() {
bet = Rng.rand(Game.startCash / 50) * 50;
return bet;
}
public static int guess() {
guess = Dice.roll();
return guess;
}
public void display() {
String name = "Computer ";
System.out.println("My name is " + name + " i bet " + bet + " and guess " + guess);
}
}
当我做 Computer.create(5) 我得到
My name is Computer i bet 150 and guess 9
My name is Computer i bet 50 and guess 3
My name is Computer i bet 450 and guess 11
My name is Computer i bet 250 and guess 11
My name is Computer i bet 50 and guess 10
此输出提供了工作的外观,但我认为我没有走在正确的轨道上。对于名称,我希望语法类似于,name = "Computer " + c[i]。导致“计算机 1”、“计算机 2”、“计算机 3”等,不确定如何正确执行此操作。并为每个单独的对象分配一个单独的下注和猜测。现在我认为它只是显示一个随机数,而不是将该值分配给特定对象。
在bet
与guess
成员变量不应该是一成不变的。
要显示 id,您可以添加一个新int
成员变量,i
在循环中初始化每台计算机时将其设置为 ,并更新display()
方法以打印它。
public class Computer {
int id;
int bet;
int guess;
int cash;
static Computer[] c;
public static void create(int numComps) {
c = new Computer[numComps];
for (int i = 0; i < numComps; i++) {
c[i] = new Computer();
c[i].id = i;
c[i].cash = Game.startCash;
c[i].bet = bet();
c[i].guess = guess();
c[i].display();
}
}
public static int bet() {
return Rng.rand(Game.startCash / 50) * 50;
}
public static int guess() {
return Dice.roll();
}
public void display() {
String name = "Computer ";
System.out.println("My name is " + name + id + " bet " + bet + " and guess " + guess);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句