Я делаю бота, который может тестировать некоторые карточные тактики в игре, бот работает, но у меня есть одна проблема. Мой метод встряхивания карты не очень хорош. Я трясу карты так:
public void ShuffelDeck()
{
for (int i = 0; i < 5; i++)
Cards = ShuffelCards(Cards);
}
private ArrayList ShuffelCards(ArrayList Cards)
{
ArrayList ShuffedCards = new ArrayList();
Random SeedCreator = new Random();
Random RandomNumberCreator = new Random(SeedCreator.Next());
while (Cards.Count != 0)
{
int RandomNumber = RandomNumberCreator.Next(0, Cards.Count);
ShuffedCards.Insert(ShuffedCards.Count, Cards[RandomNumber]);
Cards.RemoveAt(RandomNumber);
}
return ShuffedCards;
}
Проблема в том, что когда я рассчитываю без паузы между процессом встряхивания карты, несколько игроков выиграют много игр. Например
Player 1: 8 games
Player 2: 2 games
Player 3: 0 games
Player 4: 0 games
Но когда я добавляю диалог перед процессом встряски карт, выигрыш распределяется между игроками :
Player 1: 3 games
Player 2: 2 games
Player 3: 1 game
Player 4: 4 games
. Я предполагаю, что класс Random недостаточно хорош для такого грубого перебора. Как я могу перетасовать карты без такой проблемы?
Обновление :Я уже пробовал использовать 1 класс Random, а также пробовал качать карты только один раз.