-1

问题出在第 3 行,我需要取走 1-3 之间的一个数字并保存该值,以便可以取走更多。

Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
int life = life - randomNumberhit;
Console.WriteLine(life);

有任何想法吗?我做错了吗?

4

3 回答 3

4

您正在声明变量life并为其分配life - randomhit. life如果还没有值,你怎么知道计算的结果?

尝试这样的事情:

int life = 100;
...
Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
life = life - randomNumberhit;
Console.WriteLine(life);

但是,您可能希望改为使life类变量。像这样的东西会起作用:

public class MyGuy
{

    public int Life { get; set; }

    public MyGuy()
    {
        this.Life = 100; // starting life
    }

    public void Hit()
    {
        Random randomhit = new Random();
        int randomNumberhit = randomhit.Next(1, 4);
        this.Life -= randomNumberhit;
        Console.WriteLine(this.Life);
    }
}
于 2013-04-22T21:19:14.467 回答
2

生活需要被初始化

int life = 100; //Or some other value
Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
life = life - randomNumberhit;
Console.WriteLine(life);

另请注意,当生命被重新分配 ( life = life - randomNumberhit;) 时,不需要 int。

于 2013-04-22T21:18:51.167 回答
0

你正在做life-randomNumberhit,但那时你的变量life还不存在。您应该将life变量初始化为您想要的任何值:

Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
int life = 0; // for instance, 0
Console.WriteLine(life - randomNumberhit);
于 2013-04-22T21:18:29.177 回答