Hola a todos.
Desconozco si en sus países se juega al truco (Argentina), pero para el caso es irrelevante, lo que necesito es generar 6 pares de números y que ninguno de los 6 pares se duplique, ejemplos:
1 – 7
3 – 3
0 – 5
--------
0 – 5 <-- duplicado (lo que no tiene que ocurrir)
1 – 4
3 – 8
Pensé en sumar cada pares de números e ir poniéndolos en un vector y antes de confirmarlo recorrer con un bucle para establecer que realmente el número a ingresar no esté ya en el vector, lo que pasa que parece un poco largo porque después tendría que separar los 2 números para buscar el palo y la cara para repartir las cartas.-
Bueno es todo, ¿tienen una manera más sencilla para lograr lo mismo?.-
El programa:
//Programa para jugar al truco
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
void darCartas(const char *palos[], const char *caras[]);
int main(void){
const char *palos[4] = {"Espadas", "Oro", "Basto", "Copa"};
const char *caras[10] = {"As", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Sota",
"Caballo", "Rey"};
srand(time(NULL));
printf("\n Cartas para la maquina\n");
darCartas(palos, caras);
printf("\n\n Cartas para el humano\n");
darCartas(palos, caras);
printf("\n\n Pulse [Enter] para finalizar..."); getchar();
return 0;
}
void darCartas(const char *palos[], const char *caras[]){
int i, _palos, _caras;
for(i=0; i < 3; i++){
_palos = rand() % 4;
_caras = rand() % 10;
//printf("\n %d == cara = %d", _palos, _caras);
printf("\n %s de %s", *(caras + _caras), *(palos + _palos));
}
}
Desde ya muchas gracias y Saludos.
Daniel