son kart olarak "Maça Kral" alıyorum. Kart sınıfım ve kartlardan oluşan bir güverte dizi nesnesim var. Aslında oyunda kullanılacak bir deckInPlay listesini (kartların) doldurmak için güverte dizisini kullandım. Oyun içinde dizi yerine bir liste kullanmayı seçtim çünkü bir liste dinamik olarak boyutu değiştirebilir. Şimdiye kadar kendi problemlerimi çözebiliyordum, ama şimdi bir shuffleDeck yöntemi yarattığım için, gerçekten beni şaşırtan bir konu var. Gördüğünüz gibi, ben iki listeyi kullanıyorumC#: Kendi karıştırıcımı yazdı; C# öğrenmek amacıyla blackjack programı üzerinde çalışıyorum güverte
public void shuffleDeck(int timesToShuffle)
{
for (int i = 0; i <= timesToShuffle; i++)
{
for (int j = 0; j < 52; j++)
{
int randomNumber = rnd.Next(0, deckInPlay.Count - 1);
Card randomCard = deckInPlay[randomNumber];
shuffler.Add(randomCard);
deckInPlay.RemoveAt(randomNumber);
}
for (int j = 0; j < 52; j++)
{
int randomNumber = rnd.Next(0, shuffler.Count - 1);
Card randomCard = shuffler[randomNumber];
deckInPlay.Add(randomCard);
shuffler.RemoveAt(randomNumber);
}
}
}
:
en shuffleDeck yöntemi için benim kod ile başlayalım (bayi sınıf yapıcısı RND gibi Rastgele örneği) 'dir deckInPlay listesi Oyunda kullanmak istediğim asıl güverte ve esas olarak kartların karıştırılmasına yardımcı olmak için kullanılan shuffler listesi. Ben, deckInPlay listeden rastgele kartlarını alıp shuffler listesine teker teker eklemek için kod amaçlanan deckInPlay listeden kartları kaldırarak tüm süre. Daha sonra işlemi tersine çevirmek istedim: Shuffler listesinden rastgele kartlar alıp onları deckInPlay listesine ekleyerek, her kartın işlemde karıştırıcı listesinden çıkarılmasını sağladım. İlk bakışta
, shuffler Tamam çalışıyor görünüyor. olursa olsun parametredir ne 1'den daha yüksek bir parametreye sahip shuffleDeck arayarak Ama bir şey aynı kalır zaman daha da iyi çalışır: Maça Kral daima karışık işleminden sonra listedeki son karttır. Spades Kralı sadece ilk güverte dizisi ve deckInPlay listesindeki varsayılan son kart olur. Burada yanlış gittiği
anlamıyorum. Bana bir ipucu verebilirsen çok memnun olurum. Okuduğunuz için teşekkürler!
teşekkür ederiz! Çok sevindim, çok basitti, ama fark etmediğim için bir dolma gibi hissediyorum. Sorunumu tamamen düzeltdim. Listenin menzilinin dışına çıkmaktan çok korktum, Next'in maksimum değerinin münhasır kuralını unutmuştum. Tekrar teşekkürler! –
Sorun değil, yardımcı olmaktan mutluluk duyuyoruz. –