Domanda

Vorrei iniziare dicendo che mi dispiace per il mio terribile di grammatica e di ortografia.

Ho un MVC3 progetto che crea un Ponte, e aggiunge 52 carte per farlo.Poi ho aggiunto una funzione shuffle che funziona solo quando Io passo attraverso ciclo nel metodo shuffle.

In classe di mio Mazzo mi crea un Array che contiene 52 PlayingCard oggetti.Deck è un metodo che copia la Matrice in un Elenco che viene visualizzato a mio modo di vedere, ed è anche un metodo che rimescola le elenco.

Non è facile da spiegare, ma il codice viene eseguito solo una volta a meno che io passo attraverso di essa.

Il mio metodo shuffle nel mio Deck modello.

 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;
    }   
}

Uscita dopo shuffle, senza il passaggio attraverso:

*4 diamanti 1 cuori 2 cuori 3 cuori 4 cuori 5 cuori 6 cuori 7 cuori 8 cuori 9 cuori 10 cuori 11 cuori 12 cuori 13 cuori 1 picche 2 di picche 3 di picche 4 carte di picche 5 carte di picche 6 picche 7 picche 8 di picche 9 di picche 10 di picche 11 picche 12 picche 13 picche 1 notturni 2 club 3 club 4 club 5 club 6 notturni 7 club 8 club 9 club 10 club 11 club 12 club 13 club 1 diamanti 2 diamanti 12 diamanti 3 diamanti 5 diamanti 6 diamanti 7 diamanti 8 diamanti 9 diamanti 10 diamanti 11 diamanti 13 diamanti *

Uscita dopo il passaggio attraverso 15 volte:

2 di picche 3 club 5 carte di picche 3 diamanti 12 diamanti 13 cuori 11 cuori 1 picche 6 notturni 5 diamanti 1 notturni 12 cuori 7 club 13 picche 2 club 10 cuori 3 di picche 4 carte di picche 3 cuori 6 picche 7 picche 8 di picche 9 di picche 10 di picche 11 picche 12 picche 8 cuori 7 cuori 1 cuori 2 cuori 4 club 5 club 9 cuori 6 cuori 8 club 9 club 10 club 11 club 12 club 13 club 1 diamanti 2 diamanti 4 cuori 4 diamanti 5 cuori 6 diamanti 7 diamanti 8 diamanti 9 diamanti 10 diamanti 11 diamanti 13 diamanti

Uscita dopo passo attraverso l'intero ciclo:

10 cuori 6 notturni 8 cuori 5 cuori 5 club 7 diamanti 5 carte di picche 11 diamanti 12 picche 12 club 8 diamanti 5 diamanti 1 notturni 9 di picche 10 diamanti 12 cuori 8 di picche 9 club 13 club 6 cuori 1 picche 11 picche 1 cuori 12 diamanti 4 club 3 club 8 club 9 diamanti 7 club 2 club 3 diamanti 1 diamanti 7 picche 10 di picche 2 cuori 6 picche 13 picche 4 carte di picche 2 di picche 6 diamanti 4 cuori 2 diamanti 4 diamanti 11 club 7 cuori 11 cuori 3 di picche 3 cuori 10 club 13 cuori 9 cuori 13 diamanti

Come mostrato, il loop viene eseguito solo quando io passo attraverso di essa.Ho provato diversi passanti, ha realizzato un nuovo progetto, spostare la funzione shuffle per il controller, non aiuta.

Qualcuno ha qualche idea di come dovrei risolvere questo problema?

È stato utile?

Soluzione

Ho creato un esempio di applicazione in tutto questo e in movimento Random rnd = new Random() al di fuori del ciclo dà il comportamento che mi aspetta.

Il motivo per cui è apparso solo per la riproduzione casuale, di una carta, a mio parere, è perché generati in modo casuale valore è stato lo stesso valore per l'intero ciclo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top