Я работаю над программой для блэкджека, пытаясь изучить С#. У меня есть класс карт и объект массива колод, состоящий из карт. Я использовал массив колоды для заполнения списка deckInPlay (карт), который фактически будет использоваться в игре. Я решил использовать список вместо массива в игре, потому что список может динамически изменять размер. До сих пор я мог решать свои собственные проблемы, но теперь, когда я создал метод shuffleDeck, у меня возникла проблема, которая меня действительно озадачивает.
Давайте начнем с моего кода для метода shuffleDeck (я создал экземпляр Random как rnd в конструкторе класса дилера):
public void shuffleDeck(int timesToShuffle)
{
for (int i = 0; i <= timesToShuffle; i++)
{
for (int j = 0; j < 52; j++)
{
int randomNumber = rnd.Next(0, deckInPlay.Count - 1);
Card randomCard = deckInPlay[randomNumber];
shuffler.Add(randomCard);
deckInPlay.RemoveAt(randomNumber);
}
for (int j = 0; j < 52; j++)
{
int randomNumber = rnd.Next(0, shuffler.Count - 1);
Card randomCard = shuffler[randomNumber];
deckInPlay.Add(randomCard);
shuffler.RemoveAt(randomNumber);
}
}
}
Как вы можете видеть, я использую два списка: список deckInPlay, который является реальной колодой, которую я хочу использовать в игре, и список тасования, который в основном используется для помощи в тасовке карт. Я хотел, чтобы код брал случайные карты из списка deckInPlay и добавлял их одну за другой в список тасовщика, при этом удаляя карты из списка deckInPlay. Затем я хотел, чтобы процесс был обратным: брать случайные карты из списка тасователя и добавлять их в список deckInPlay, удаляя каждую карту из списка тасователя в процессе.
На первый взгляд кажется, что шаффлер работает нормально. Это работает еще лучше, если вызвать shuffleDeck с параметром выше 1. Но одно остается неизменным, независимо от параметра: пиковый король всегда является последней картой в списке после процесса тасования. Так получилось, что пиковый король является последней картой по умолчанию в моем исходном массиве колод и в списке deckInPlay.
Я не понимаю, где я ошибся здесь. Я был бы очень признателен, если бы вы могли дать мне ключ. Спасибо за чтение!