У меня есть класс, представляющий монету, которую можно перевернуть с помощью метода Coin.Flip(). Flip() использует random.Next (2); чтобы получить либо 0, либо 1, представляющие головы или хвосты. Это работает хорошо .. вроде.Проблема с C# Случайный класс
Для программы мне нужно иметь 2 монеты, которые я делаю, скажем, coin1 и coin2.
coin2 всегда должна быть перевернута сразу после coin1, что я могу сделать с:
coin1.Flip();
coin2.Flip();
Это должно работать, не так ли?
Ну, это не так! Каждый раз, когда я запускаю эти две строки кода, обе монеты заканчиваются одинаковыми значениями друг друга!
Номинальная стоимость хранится в лице внутри класса монет, которая определяется следующим образом:
private int face;
Я не вижу ничего плохого с тем, что я сделал, но каждый раз, когда я бегу кода, они заканчиваются одинаковыми.
Ой, а также случайная определяется в классе монет, а так:
private Random random = new Random();
Спасибо за вашу помощь!
EDIT: Вот Flip(), теперь он работает, но случайный статичен.
public void Flip() {
face = random.Next(2);
}
Можете ли вы продемонстрировать реализацию Flip? –
Примечание: если вы статируете его, вы должны также синхронизировать его или сделать его конкретным потоком, поскольку он не указан как потокобезопасный. –