J'écris un programme de lecture de cartes pour apprendre le C#.Problème avec le tableau C#
J'ai rencontré un problème avec un tableau sortant des limites.
Voici mon code:
namespace Pcardconsole
{
class Deck
{
public Deck()
{
// Assign standard deck to new deck object
int j;
for (int i = 0; i != CurrentDeck.Length; i++)
{
CurrentDeck[i] = originalCards[i];
}
// Fisher-Yates Shuffling Algorithim
Random rnd = new Random();
for (int k = CurrentDeck.Length - 1; k >= 0; k++)
{
int r = rnd.Next(0, k + 1);
int tmp = CurrentDeck[k];
CurrentDeck[k] = CurrentDeck[r];
CurrentDeck[r] = tmp;
// Console.WriteLine(i);
}
}
public void Shuffle()
{
// TODO
}
// public int[] ReturnCards()
// {
// TODO
// }
public int[] originalCards = new int[54]
{
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C,
0x1D, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B,
0x2C, 0x2D, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
0x3B, 0x3C, 0x3D, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
0x4A, 0x4B, 0x4C, 0x4D, 0x50, 0x51
};
public int[] CurrentDeck = new int[54];
}
class Program
{
static void Main(string[] args)
{
// Create a Deck object
Deck mainDeck = new Deck();
Console.WriteLine("Here is the card array:");
for (int index = 0; index != mainDeck.CurrentDeck.Length; index++)
{
string card = mainDeck.CurrentDeck[index].ToString("x");
Console.WriteLine("0x" + card);
}
}
}
}
Les numéros hexadécimaux représentent des cartes différentes.
Lorsque je le compile, j'obtiens un index de tableau hors limites et un crash.
Je ne comprends pas ce qui ne va pas.
Toute aide serait grandement appréciée.
Wow, vous êtes rapide. Merci beaucoup. J'ai récupéré ça sur un autre site, donc je pense qu'ils n'ont pas testé le code. Je vais l'essayer maintenant. – Biosci3c
Oui! Fonctionne comme un charme. Merci beaucoup! – Biosci3c