#define PALOS 4
#define NUMCARTAS 10
byte baraja [PALOS*NUMCARTAS];
char *strpalos[]={"OROS","COPAS","ESPADAS","BASTOS"};
void iniciaBaraja(){
for (byte i=0;i< PALOS*NUMCARTAS ; i++)
baraja[i]=i+1;
}
void mezclar(){
for (byte i=0;i< PALOS*NUMCARTAS ; i++){
byte temp=baraja[i];
byte indice=random(0,PALOS*NUMCARTAS);
baraja[i]=baraja[indice];
baraja[indice]=temp;
//Serial.print(indice); Serial.print(",Baraja=");Serial.print(baraja[i]); Serial.print(","); Serial.println(baraja[indice]);
}
// Mostrar toda la baraja esto se quitaria del programa
for (byte i=0;i< PALOS*NUMCARTAS ; i++){
Serial.print(baraja[i]);Serial.print(",");}
delay(3000);
Serial.println();
for (byte i=0;i< PALOS*NUMCARTAS ; i++){
byte xx=baraja[i];
byte tpal=(xx-1) / NUMCARTAS;// convie rte valor de 1 a 40 en palo de la baraja (0=oros, 1=copas, 2=espadas, 3=bastos)-> división entera
byte num=xx % NUMCARTAS; // Obtiene el resto de la división y así obtenemos el número de carta
if (num==0) num=NUMCARTAS;// Si el resto es cero es en realidad el valor de NUMCARTAS
Serial.print(num);Serial.print(" de "); // ejemplo 6 de OROS (6,0)
Serial.print(strpalos[tpal]);Serial.print("("); Serial.print(xx);Serial.print(",");Serial.print(tpal); Serial.print("),");
Serial.println();
//delay(2000);
}
}
void puntuacion(){
byte x=0;
float punto = x;
float vcf;
byte vc=(x-1)%NUMCARTAS;
if(vc==0||vc>8) vc=0.5;
else
if (vcf=vc){
return vcf;
if(x>7.5;x==0);
}
}
void jugar()
{
int start=0;
int jug=0;
int cont=0;
for (start=0;start<1;start++){
if (start=0) {
jug=0;
Serial.println("escribe `p´ para plantarse o `s´ para seguir");
string j;
cin >> j;
if (string="c"){
}
else
if(string="p"){
}
Serial.println(cont);
}
else
if(start=1) {
jug=1;
Serial.println("escribe `p´ para plantarse o `s´ para seguir");
}
}
}
void setup()
{
randomSeed(analogRead(A0));
Serial.begin(9600);
iniciaBaraja();
mezclar();
jugar();
int contador=0;
while (contador<40);
}
void loop()
{
}