Hola a todxs, estoy haciendo un ejercicicio de programacion del bingo en c y el ejercicio es el siguiente:
juegan dos jugarores a la vez, y tienen un carton cada uno. Cada carton tiene 3 filas y 5 valores por fila. los numeros estan en el rango [1,90]. tambien se generara una bola de rango [1,90], nunca repetidos.
1-al iniciar partida se reparten los cartones generados aleatoriamente.
2-sacar bola-> el programa genreara aleatoriamente un numero [1,90] que no haya salido a lo largo de la partida. una vez generado el numero se comprobara si ha habido linea o bingo, si hubo un empate o nada en caso contrario.
la linea se cantara una vez. el bingo consiste en haber acertado todos los numeros del carton.
3- imrpimir cartones, el programa mostrara por pantalla los booletos de cada jugador formateados, indicando con una X los numeros ya elimandos. por ejemplo:
13 X 56 4 5
12 X X 4 57
15 X 72 X 7
-----------------------
EL PROGRAMA QUE TENGO ES EL SIGUIENTE, PERO ANTES OS DIGO QUE EL PROBLEMA LE TENGO A LA HORA DE SACAR LAS X YA QUE TENGO CASI TODO METIDO EN DIFERENTES FUNCIONES Y NO SE COMO SE HARIA.
-----------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define FILAS_CARTON 3
#define NUMEROS_FILA 5
#define MAX_BOLAS 90
int carton_1[FILAS_CARTON][NUMEROS_FILA];
int carton_2[FILAS_CARTON][NUMEROS_FILA];
int bolas_bingo[MAX_BOLAS];
int elegir_opcion();
void imprimir_menu();
void rellenar_carton();
void rellenar_carton2();
void imprimir_carton();
void imprimir_carton2();
bool esta_repetido(int numero);
void generar_bola();
int main()
{
char* nom1,nom2;
int opcion;
printf("\n nombre jugador 1");
scanf("%s",&nom1);
printf("\n nombre jugador 2");
scanf("%s",&nom2);
opcion=1;
while(opcion!=0) {
imprimir_menu();
opcion=elegir_opcion();
switch (opcion)
{
case 1:
rellenar_carton();
rellenar_carton2();
break;
case 2:
generar_bola();
break;
case 3:
imprimir_carton2();
imprimir_carton();
break;
case 4:
break;
}
}
return 0;
}
void imprimir_menu(){
printf("\n--------JUEGO DEL BINGO-----");
printf("\n\t 1. generar cartones");
printf("\n\t 2. generar bola");
printf("\n\t 3. imrpimir cartones");
printf("\n\t 0. salir de la aplicacion");
printf("\n----------------------------");
}
int elegir_opcion(){
int opcion;
printf("\n elegir opcion");
scanf("%d",&opcion);
return opcion;
}
void rellenar_carton(){
int i,j,num;
srand(getpid());
for(i=0;i<FILAS_CARTON;i++){
for(j=0;j<NUMEROS_FILA;j++){
num=rand() % (90-1+1)+1;
if (!esta_repetido(num)){
carton_1[j]=num;
} else {
j--;
}
}
}
}
void imprimir_carton(){
int i,j;
for(i=0;i<FILAS_CARTON;i++){
for(j=0;j<NUMEROS_FILA;j++){
printf(" %d",carton_1[j]);
}
printf("\n");
}
printf("\n");
}
bool esta_repetido(int numero){
int i,j;
for(i=0;i<FILAS_CARTON;i++){
for(j=0;j<NUMEROS_FILA;j++){
if(carton_1[j]==numero){
return true;
}
}
}
return false;
}
void generar_bola(){
int bola;
srand(getpid());
bola=rand() % (90-1+1)+1;
printf("%d",bola);
}
void rellenar_carton2(){
int i,j,num;
srand(getpid());
for(i=0;i<FILAS_CARTON;i++){
for(j=0;j<NUMEROS_FILA;j++){
num=rand() % (90-1+1)+1;
if (!esta_repetido(num)){
carton_2[j]=num;
} else {
j--;
}
}
}
}
void imprimir_carton2(){
int i,j;
for(i=0;i<FILAS_CARTON;i++){
for(j=0;j<NUMEROS_FILA;j++){
printf(" %d",carton_2[j]);
}
printf("\n");
}
}