我有一个代表硬币的类,可以使用Coin.Flip()方法翻转.Flip()使用random.Next(2); 获得表示头部或尾部的0或1.这很好..有点.
对于程序,我需要有2个硬币,我可以说硬币1和硬币2.
coin2总是需要在coin1之后直接翻转,我可以用:
coin1.Flip();
coin2.Flip();
Run Code Online (Sandbox Code Playgroud)
那应该有用,对吗?
好吧,它没有!每次我运行这两行代码时,两个硬币最终都会有相同的值!
面值存储在Coin类中的face中,其定义如下:
private int face;
Run Code Online (Sandbox Code Playgroud)
我没有看到我所做的事情有任何问题,但每次运行代码时,它们最终都是相同的.
哦,同样,随机也是在Coin类中定义的,如下所示:
private Random random = new Random();
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
编辑:这是Flip(),它现在可以工作,即random是静态的.
public void Flip() {
face = random.Next(2);
}
Run Code Online (Sandbox Code Playgroud)