C#에서 카드 덱 섞기
카드 덱을 섞을 수 있는 프로그램을 만들려면 셔플링 알고리즘을 구현해야 합니다. Fisher-Yates 셔플 알고리즘은 주어진 목록의 무작위 순열을 보장하는 널리 사용되는 기술입니다.
C#에서 이 알고리즘을 구현하려면 다음 단계를 고려하세요.
Fisher-Yates Shuffle 클래스 만들기:
라는 정적 클래스를 정의합니다. 다음 메소드를 포함하는 FisherYates:
static public void Shuffle(int[] deck) { for (int n = deck.Length - 1; n > 0; --n) { int k = r.Next(n + 1); int temp = deck[n]; deck[n] = deck[k]; deck[k] = temp; } }
이 메소드에서:
Deck:
Deck 클래스에서 카드(카드) 배열에 대해 FisherYates.Shuffle() 메서드를 호출하는 메서드를 만듭니다.
public void Shuffle() { FisherYates.Shuffle(cards); }
프로그램 업데이트:
Main() 메소드에서 프로그램 클래스는 초기 카드 목록을 표시한 후 사용자에게 덱을 섞을 횟수를 묻습니다. 그런 다음 데크의 Shuffle() 메서드를 지정된 횟수만큼 호출합니다.
Console.WriteLine("How Many Times Do You Want To Shuffle?"); int numShuffles = int.Parse(Console.ReadLine()); for (int i = 0; i < numShuffles; i++) { mydeck.Shuffle(); }
섞은 카드 표시:
마지막으로 , 덱의 카드를 다시 반복하고 섞인 카드를 표시합니다. 순서:
foreach (Card c in mydeck.Cards) { Console.WriteLine(c); }
다음 단계를 수행하면 사용자가 원하는 셔플 수에 따라 카드 덱을 섞고 섞인 카드를 표시할 수 있는 프로그램을 만들 수 있습니다.
위 내용은 C#에서 카드 덱을 무작위로 만들기 위해 Fisher-Yates Shuffle을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!