Ich arbeite an einem Pokerprojekt. Ich versuche zufällige Karten aus einer Datei zu generieren, ohne dass es Duplikate gibt. Es ist wie ein 5-Karten-Ziehungsspiel, ich möchte einfach nicht, dass es möglich ist, eine 5 von einer Art zu bekommen, oder ein Paar von zwei Karten, die in derselben Suite sind.Zufälliger Bildgenerator ohne Duplikate C#
Hier ist ein Blick auf mein Code
for (int i = 0; i < 5; i++)
{
CardDisplay[i] = getRandomImage();
}
if (!IsPostBack)
{
Discard.Enabled = false;
PokerCard1.Enabled = false;
PokerCard2.Enabled = false;
PokerCard3.Enabled = false;
PokerCard4.Enabled = false;
PokerCard5.Enabled = false;
Hold1.Visible = false;
Hold2.Visible = false;
Hold3.Visible = false;
Hold4.Visible = false;
Hold5.Visible = false;
PokerCard1.ImageUrl = Path.Combine("/My_Portfolio/App_Themes/Portfolio/Images/Poker/", CardDisplay[0]);
PokerCard2.ImageUrl = Path.Combine("/My_Portfolio/App_Themes/Portfolio/Images/Poker/", CardDisplay[1]);
PokerCard3.ImageUrl = Path.Combine("/My_Portfolio/App_Themes/Portfolio/Images/Poker/", CardDisplay[2]);
PokerCard4.ImageUrl = Path.Combine("/My_Portfolio/App_Themes/Portfolio/Images/Poker/", CardDisplay[3]);
PokerCard5.ImageUrl = Path.Combine("/My_Portfolio/App_Themes/Portfolio/Images/Poker/", CardDisplay[4]);
}
public string getRandomImage()
{
string[] fileNames = Directory.GetFiles(MapPath("/My_Portfolio/App_Themes/Portfolio/Images/Poker/"));
string CardToShow = fileNames[rand.Next(fileNames.Length)];
return Path.GetFileName(CardToShow);
}
Das bekommen zufälliges Bild Methode offensichtlich ist, wo ich die Bilder aus der Datei aufrufen. Hier
ist ein Screenshot von dem, was es sieht aus wie
Danke, und jede Hilfe sehr dankbar
Der einfachste Weg besteht darin, zu überprüfen, ob Sie den zurückgegebenen Wert in den zuvor erhaltenen Karten bereits haben. Ein robuster Algorithmus würde alle Karten in ein Array legen, mischen und fünf erste Karten nehmen. –
In der realen Welt hast du ein Kartenspiel, das du mischt und dann von oben kommst. Sie sollten wahrscheinlich bei diesem Modell bleiben. –
Ich denke, Sie sollten Preston hören und den realen Prozess nachahmen, anstatt den Prozess neu zu überdenken. Es kann Ihnen später helfen. Z.B. wenn jede Karte ein Gegenstand ist, könnte sie "Standort" -Eigenschaft oder Ähnliches haben (welcher Spieler hält sie, oder in Ablagestapel oder in Deck, usw.). Wenn Karten neu gemischt werden (ich weiß nicht, ob das beim Pokern passiert), würdet ihr alle Gegenstände auf dem Ablagestapel neu zufallieren und ihr wisst, dass es keine Karten mehr im Deck gibt usw. – Jonathan