Вопрос

Позвольте мне начать с того, что извините за мою ужасную грамматику и орфографию.

У меня есть проект MVC3, который создает колоду и добавляет 52 карт к нему. Затем я добавил функцию Shuffle, которая работает только тогда, когда я шагу через петля в методе shuffle.

В моем классном колоде я создаю массив, который содержит 52 объектов rightcard. Палуба имеет метод, который копирует массив в список, который отображается на мой взгляд, И у него также есть метод, который передает список.

Не легко объяснить, но код работает только один раз , если я не выхожу через него.

Мой метод Shuffle в моей модели палубы.

 public void Shuffle()
 {
    for (int i = 0; i < 51; i++)
    {
        PlayingCard temp;
        temp = myDeck[i];
        Random rnd = new Random();
        int randomNr = rnd.Next(51);
        myDeck[i] = myDeck[randomNr];
        myDeck[randomNr] = temp;
    }   
}
.

<Сильный> Вывод после перемешивания, Whithout выпуская:

<Сильные> * 4 бриллианта 1 сердца 2 сердца 3 сердца 4 сердца 5 сердец 6 сердец 7 сердец 8 сердец 9 сердец 10 сердец 11 сердец 12 сердец 13 сердец 1 пики 2 пики 3 пики 4 пики 5 пиков 6 пиков 7 пиков 8 пиков 9 пиков 10 пиков 11 пиков 12 пик 13 пиков 1 клубы 2 клуба 3 клуба 4 клуба 5 клубов 6 клубов 7 клубов 8 клубов 9 клубов 10 клубов 11 клубов 12 клубов 13 клубов 1 бриллианты 2 бриллианта <Сильные> 12 алмазов 3 бриллианта 5 бриллиантов 6 бриллиантов 7 бриллиантов 8 бриллиантов 9 бриллиантов 10 бриллиантов 11 бриллиантов 13 бриллиантов *

Выход после шага до 15 раз:

2 пики 3 клуба 5 пиков 3 бриллианта 12 бриллиантов 13 сердец 11 сердец 1 пики 6 клубов 5 бриллиантов 1 клубы 12 сердец 7 клубов 13 пиков 2 клуба 10 сердец 3 пики 4 пики 3 сердца 6 пиков 7 пиков 8 пиков 9 пиков 10 пиков 11 пиков 12 пик 8 сердец 7 сердец 1 сердца 2 сердца 4 клуба 5 клубов 9 сердец 6 сердец 8 клубов 9 клубов 10 клубов 11 клубов 12 клубов 13 клубов 1 бриллианты 2 бриллианта 4 сердца 4 бриллианта 5 сердец 6 бриллиантов 7 бриллиантов 8 бриллиантов 9 бриллиантов 10 бриллиантов 11 бриллиантов 13 бриллиантов

<Сильный> Вывод после выхода через весь цикл:

10 сердец 6 клубов 8 сердец 5 сердец 5 клубов 7 бриллиантов 5 пиков 11 бриллиантов 12 пик 12 клубов 8 бриллиантов 5 бриллиантов 1 клубы 9 пиков 10 бриллиантов 12 сердец 8 пиков 9 клубов 13 клубов 6 сердец 1 пики 11 пиков 1 сердца 12 бриллиантов 4 клуба 3 клуба 8 клубов 9 бриллиантов 7 клубов 2 клуба 3 бриллианта 1 бриллианты 7 пиков 10 пиков 2 сердца 6 пиков 13 пиков 4 пики 2 пики 6 бриллиантов 4 сердца 2 бриллианта 4 бриллианта 11 клубов 7 сердец 11 сердец 3 пики 3 сердца 10 клубов 13 сердец 9 сердец 13 бриллиантов

Как показано, цикл работает только при его прохождении. Я пробовал разные петли, сделал новый проект, переместите функцию Shuffle для контроллера, ничего не помогает.

У кого-нибудь есть какие-либо идеи, как я должен решить это?

Это было полезно?

Решение

Я создал образец приложения вокруг этого и движущимся Renacodicetacodcodcode на внешний цикл, дает мне поведение, которое я бы ожидал.

Причина, по которой она появилась только для перемещения одной карты, на мой взгляд, это потому, что случайно сгенерированное значение было одинаковым значением для всей петли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top