The practice program that I am doing consists of creating an English deck and writing the cards in console (The King of Hearts -for example-), but they do not come out in order, but at random. I have a class library with 2 classes and 2 enum to do this project. But when compiling the code of the main program (image 1) the error marks me. I'm just starting on this, but I can not understand the reason for this error.
Here is the code of my class library
.
class Deck
{
private Carta[] cartas;
public Deck()
{
cartas = new Carta[52];
for (int vPalo = 0; vPalo < 4; vPalo++)
{
for (int vRango = 0; vRango < 14; vRango++)
{
cartas[vPalo * 13 + vRango - 1] = new Carta((Palo)vPalo, (Rango)vRango);
}
}
}
public Carta ObtenerCarta(int numeroCarta)
{
if (numeroCarta >=0 && numeroCarta <= 52)
{
return cartas[numeroCarta];
}
else
{
throw (new System.ArgumentOutOfRangeException("numeroCarta", numeroCarta, "El numero de cartas debe ser de 52!"));
}
}
public void Shuffle()
{
Carta[] nuevoDeck = new Carta[52];
bool[] asignado = new bool[52];
Random source = new Random();
for (int i = 0; i < 52; i++)
{
int destCarta = 0;
bool cartaEncontrada = false;
while (cartaEncontrada == false)
{
destCarta = source.Next(52);
if (asignado[destCarta] == false)
{
cartaEncontrada = true;
}
}
asignado[destCarta] = true;
nuevoDeck[destCarta] = cartas[i];
}
nuevoDeck.CopyTo(cartas, 0);
}
}
class Carta
{
public readonly Palo palo;
public readonly Rango rango;
public Carta(Palo unPalo, Rango unRango)
{
palo = unPalo;
rango = unRango;
}
private Carta()
{
}
public override string ToString()
{
return "El/La " + rango + " de " + palo;
}
}