ひどい文法とつづりでごめんなさいと言うことから始めましょう。
デッキを作成して52枚のカードを追加するMVC3プロジェクトがあります。次に、シャッフルメソッドでループをステップスルーしたときにのみ機能するシャッフル機能を追加しました。
私のクラスのデッキでは、52個のPlayingCardオブジェクトを保持する配列を作成します。Deckには、ビューに表示されているリストに配列をコピーするメソッドがあり、リストをシャッフルするメソッドもあります。
説明するのは簡単ではありませんが、コードをステップスルーしない限り、コードは1回しか実行されません。
デッキモデルでのシャッフル方法。
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;
}
}
ステップスルーなしで、シャッフル後に出力します。
*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ダイヤモンド
示されているように、ループは私がそれをステップスルーしたときにのみ実行されます。私はさまざまなループを試し、新しいプロジェクトを作成し、シャッフル機能をコントローラーに移動しましたが、何も役に立ちません。
誰かが私がこれをどのように解決すべきか考えていますか?