Domingo 15 de Diciembre de 2024, 03:02
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
bingo en C, funcion comprobar
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: bingo en C, funcion comprobar (Leído 7302 veces)
antlcn
Nuevo Miembro
Mensajes: 12
bingo en C, funcion comprobar
«
en:
Miércoles 3 de Marzo de 2010, 18:09 »
0
hola, estoy haciendo un bingo en C cuyo enunciado es:
Realizar un programa para simular una sesión de Bingo en la que hay tres jugadores. Para ello, el programa debe incluir funciones para:
a)Generar los cartones. Cada cartón será una matriz aleatoria de 5 filas y 8 columnas, con valores enteros no repetidos de 0 a 99.
b)Sacar una bola del bombo. Para ello, se debe generar un número aleatorio de 0 a 99, teniendo cuidado de no generar dos veces el mismo valor.
c)Actualizar un cartón según la bola que ha salido y comprobar si el jugador ha obtenido línea (todos los valores de una línea del cartón) o bingo (todos los valores del cartón).
Para probar las funciones implementadas, simule la generación de bolas hasta que se acaben todas las bolas del bombo.
tengo todo, o eso creo pero no se exactamente como ir comprobando en con cada bola sacada si se ha hecho linea o bingo...
mi codigo:
Código: C
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void
gen_cartones
(
int
*
ptr
)
;
int
revisarRepetido
(
int
*
ptr
,
int
n
,
int
lim
)
;
void
mostrar
(
int
M
[
]
[
8
]
)
;
int
saca_bola
(
int
*
B
,
int
i
)
;
int
menu
(
)
;
int
main
(
void
)
{
int
op
=
0
,
i
=
0
,
aux
;
int
C1
[
5
]
[
8
]
,
C2
[
5
]
[
8
]
,
C3
[
5
]
[
8
]
,
B
[
99
]
;
op
=
menu
(
)
;
while
(
op
!=
0
)
{
switch
(
op
)
{
case
1
:
printf
(
"pulsa una tecla para generar el primer carton..."
)
;
getchar
(
)
;
getchar
(
)
;
gen_cartones
(
C1
[
0
]
)
;
printf
(
"pulsa una tecla para generar el segundo carton..."
)
;
getchar
(
)
;
gen_cartones
(
C2
[
0
]
)
;
printf
(
"pulsa una tecla para generar el tercer carton..."
)
;
getchar
(
)
;
gen_cartones
(
C3
[
0
]
)
;
break
;
case
2
:
printf
(
"npulsa una tecla para mostrar cartones..."
)
;
getchar
(
)
;
printf
(
"ncarton jugador 1: n"
)
;
mostrar
(
C1
)
;
printf
(
"ncarton jugador 2: n"
)
;
mostrar
(
C2
)
;
printf
(
"ncarton jugador 3: n"
)
;
mostrar
(
C3
)
;
break
;
case
3
:
if
(
i
==
100
)
printf
(
"nno se pueden sacar mas bolasn"
)
;
else
{
aux
=
saca_bola
(
B
,
i
)
;
B
[
i
]
=
aux
;
i
++;
}
break
;
default
:
printf
(
"nError...introduce una opcion validan"
)
;
break
;
}
op
=
menu
(
)
;
}
return
0
;
}
void
gen_cartones
(
int
*
ptr
)
{
int
aux
,
i
=
0
;
srand
(
time
(
0
)
)
;
while
(
i
<
40
)
{
aux
=
rand
(
)
%
100
;
if
(
(
revisarRepetido
(
ptr
,
aux
,
40
)
)
==
0
)
{
*
(
ptr
+
i
)
=
aux
;
i
++;
}
}
}
int
revisarRepetido
(
int
*
ptr
,
int
n
,
int
lim
)
{
int
i
,
ret
=
0
;
for
(
i
=
0
;
i
<
lim
;
i
++
)
{
if
(
*
(
ptr
+
i
)
==
n
)
ret
=
1
;
}
return
ret
;
}
void
mostrar
(
int
M
[
]
[
8
]
)
{
int
i
,
j
;
for
(
i
=
0
;
i
<
5
;
i
++
)
{
for
(
j
=
0
;
j
<
5
;
j
++
)
{
printf
(
"t%d"
,
M
[
i
]
[
j
]
)
;
}
printf
(
"n"
)
;
}
}
int
saca_bola
(
int
*
B
,
int
i
)
{
int
aux
=
0
;
srand
(
time
(
0
)
)
;
aux
=
rand
(
)
%
100
;
while
(
revisarRepetido
(
B
,
aux
,
i
)
!=
0
)
{
aux
=
rand
(
)
%
100
;
}
return
aux
;
}
int
menu
(
)
{
int
op
=
0
;
printf
(
"ntMENU:"
)
;
printf
(
"nt1. Rellenar cartones."
)
;
printf
(
"nt2. Mostrar cartones."
)
;
printf
(
"nt3. Sacar bola."
)
;
printf
(
"nt0. Salir."
)
;
printf
(
"n-Seleccion: "
)
;
scanf
(
"%d"
,&
op
)
;
return
op
;
}
gracias de antemano!
Tweet
locazopro
Miembro activo
Mensajes: 51
Re: bingo en C, funcion comprobar
«
Respuesta #1 en:
Miércoles 3 de Marzo de 2010, 18:52 »
0
se me ocurre una solución rápida, que tengas también un array que contenga los datos de si los números en tu cartón fueron nombrados o no. Este sería un array del mismo tamaño que el cartón. Luego en cada pasada compruebas si es que por ejemplo hay algún valor false entonces no hay bingo.
Saludos.
antlcn
Nuevo Miembro
Mensajes: 12
Re: bingo en C, funcion comprobar
«
Respuesta #2 en:
Jueves 4 de Marzo de 2010, 10:05 »
0
no me queda todavia claro...no se exactamente como encajar eso
locazopro
Miembro activo
Mensajes: 51
Re: bingo en C, funcion comprobar
«
Respuesta #3 en:
Domingo 7 de Marzo de 2010, 03:31 »
0
mira, básicamente lo que te digo es que por cada cartón tengas también por decirlo así un cartón para comprobar. Este debe ser un array exactamente igual al original, ahora por ejemplo a ese cartón lo llenas de ceros, lo que significa que no ha salido ningún número de la tómbola, si sale un número entonces cambias ese cero por un 1 y asi sucesivamente, si el cartón de comprobar posee únicamente unos entonces hay bingo, si es que hay algún cero entonces no hay bingo, no se si me entiendes ahora.
Saludos!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
bingo en C, funcion comprobar