Trouble with C# array

Posted by Biosci3c on Stack Overflow See other posts from Stack Overflow or by Biosci3c
Published on 2010-03-09T05:34:56Z Indexed on 2010/03/09 5:36 UTC
Read the original article Hit count: 390

Filed under:
|
|

Hi, I am writing a card playing program as a way of learning C#.

I ran into an issue with an array going out of bounds.

Here is my 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);
        }
    }
}

The hexidecimal numbers stand for different cards.

When I compile it I get an array index out of bounds error, and a crash.

I don't understand what is wrong.

Any help would be much appreciated.

© Stack Overflow or respective owner

Related posts about c#

Related posts about array