Я пытаюсь запрограммировать игру Farkle. Он рулон до 6 кубиков одновременно. Я создал класс Die, чтобы удерживать значение матрицы и метод Roll() для свертывания матрицы.Получите случайное число от другого класса (игра в кости)
Игра создаст массив из 6 кубиков и свернет их все сразу, поэтому я не хотел, чтобы класс Die создавал Random() в каждом экземпляре класса или все кости имели бы одинаковые посеянные случайные числа. Поэтому я создал новую функцию Random() в MainForm моего приложения.
Я запутался в правильном способе вызова этого метода Random() из класса Die, не делая вещи общедоступными, которые должны быть частными и еще много чего. Я действительно новичок и хочу, чтобы все было проще, но я хочу делать все правильно.
Я знаю, что лучше всего использовать только одну Random() для всей программы, так как я могу назвать этот отдельный класс?
Класс Die:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Farkle
{
class Die
{
// Fields
private int _value;
// Constructor
public Die()
{
_value = 1;
}
// Value property
public int Value
{
get { return _value; }
}
// Rolls the die
public void Roll()
{
_value = MainForm.rand.Next(6) + 1;
}
}
}
Главная форма:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Farkle
{
public partial class MainForm : Form
{
private Random rand = new Random(); // Should this be public? Or static?
public MainForm()
{
InitializeComponent();
}
// Create dice array
Die[] diceInHand = new Die[6];
// Roll each die
private void MainForm_Load(object sender, EventArgs e)
{
foreach (Die die in diceInHand)
die.Roll();
}
}
}
Спасибо.
Позвольте мне знать, какова будет ожидаемая польза '«использовать только один Random() для всей программы»' –