Inicio
Buscar
Ingresar
Registrarse
Starfield: el juego que revolucionará el espacio y la tecnología
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
C / C++
»
Generar 6 pares de números y que ninguno de los 6 pares se repita
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: Generar 6 pares de números y que ninguno de los 6 pares se repita (Leído 3867 veces)
Pino1952
Visitante
Generar 6 pares de números y que ninguno de los 6 pares se repita
«
en:
Diciembre 04, 2014, 11:07:57 pm »
Hola a todos, que tengan un muy buen día.
Desconozco si en sus países se juega al truco (el mío 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:
2 – 5
0 – 3
1 – 8
--------
1 – 8
<== 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, desearía saber si hay una manera más simple de lograr lo mismo .-
El programa:
Código: C
//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
En línea
stakewinner00
{ L7 } Juanker
Mensajes: 1010
Re:Generar 6 pares de números y que ninguno de los 6 pares se repita
«
Respuesta #1 en:
Diciembre 04, 2014, 11:39:01 pm »
Podrías crear una matriz donde almacenas los dos números por separado para no tener que sumarlos ni cosas raras.
En línea
Pino1952
Visitante
Re:Generar 6 pares de números y que ninguno de los 6 pares se repita
«
Respuesta #2 en:
Diciembre 06, 2014, 10:27:23 pm »
Hola stakewinner00.
Muchas gracias por la idea, me base en ella para lograrlo, dejo el código por si alguien necesita algo parecido.-
Código: C
//Programa para jugar al truco
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
void
darCartas
(
const
char
*
palo
[
]
,
const
char
*
numero
[
]
)
;
int
main
(
void
)
{
const
char
*
palo
[
4
]
=
{
"Espadas"
,
"Oro"
,
"Basto"
,
"Copa"
}
;
const
char
*
numero
[
10
]
=
{
"As"
,
"Dos"
,
"Tres"
,
"Cuatro"
,
"Cinco"
,
"Seis"
,
"Siete"
,
"Sota"
,
"Caballo"
,
"Rey"
}
;
srand
(
time
(
NULL
)
)
;
printf
(
"
\n
Cartas para la maquina
\n
"
)
;
darCartas
(
palo
,
numero
)
;
printf
(
"
\n
\n
Pulse [Enter] para finalizar..."
)
;
getchar
(
)
;
return
0
;
}
void
darCartas
(
const
char
*
palo
[
]
,
const
char
*
numero
[
]
)
{
int
contWhile
=
0
,
conFor
=
0
,
_palo
=
0
,
_numero
=
0
,
ok
=
0
;
int
sel
[
12
]
=
{
11
,
11
,
11
,
11
,
11
,
11
,
11
,
11
,
11
,
11
,
11
,
11
}
,
*
ptrSel
=
sel
;
while
(
contWhile
<
12
)
{
_palo
=
rand
(
)
%
4
;
_numero
=
rand
(
)
%
10
;
for
(
conFor
=
0
;
conFor
<
12
;
conFor
+=
2
)
{
if
(
*
(
ptrSel
+
conFor
)
==
_numero
)
{
if
(
*
(
ptrSel
+
conFor
+
1
)
==
_palo
)
{
ok
=
1
;
}
}
}
if
(
ok
==
0
)
{
*
(
ptrSel
+
contWhile
)
=
_numero
;
contWhile
++;
*
(
ptrSel
+
contWhile
)
=
_palo
;
contWhile
++;
}
else
{
ok
=
0
;
}
}
printf
(
"
\n
"
)
;
for
(
conFor
=
0
;
conFor
<
12
;
conFor
+=
2
)
{
printf
(
" %s de %s
\n
"
,
*
(
numero
+
*
(
ptrSel
+
conFor
)
)
,
*
(
palo
+
*
(
ptrSel
+
conFor
+
1
)
)
)
;
if
(
conFor
==
4
)
printf
(
"
\n
Cartas para el humano
\n
\n
"
)
;
}
}
Saludos.
Daniel
En línea
Imprimir
Páginas: [
1
]
Ir Arriba
Hack x Crack - Comunidad de Seguridad informática
»
Programación
»
C / C++
»
Generar 6 pares de números y que ninguno de los 6 pares se repita
Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso...
OK
Learn more