Estamos haciendo un bingo con estructuras en C pero nos da un error en la linea 66 "expected primary expression before , token" help plz.
Código (cpp) [Seleccionar]
/*Manejo de estructuras*/
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include<windows.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
//struct
typedef struct carton{
int a[5][5];
};
typedef struct cartonM{
int b[15][5];
};
void gotoxy(int fila,int col);
void generar_c(carton *cart);
void generar_cartonM(cartonM *cartM);
void imprimir(carton *cart, int fil, int col);
void imprimirM(cartonM *cartM, int fil, int col);
void marcar_carton(int num,carton *cart,cartonM *cartM);
int asignar_columna(int fila,int columna,carton *cart, int limite);
int asignar_columnaM(int fila,int columna,cartonM *cartM, int limite);
int cantar(int limite,cartonM *cartM);
bool sin_repetir_pizarra(int num,cartonM *cartM);
int main(){
srand (time(NULL));
carton jugador,maquina;
cartonM maestra,limite;
char opcion='0';
while(opcion!='3'){
system("cls");
printf("[1] MOSTRAR CARTON \n");
printf("[2] CANTAR NUMEROS \n");
printf("[3] Salir\n");
printf("Ingrese opcion:\n");
opcion=getch();
switch(opcion){
case '1':
system("cls");
//jugador
generar_c(&jugador);
imprimir(&jugador,2,2);
//maquina
generar_c(&maquina);
imprimir(&maquina,2,20);
//Maestra
generar_cartonM(&maestra);
imprimirM(&maestra,2,50);
system("pause");
break;
case '2':
system("cls");
//jugador
imprimir(&jugador,2,2);
//maquina
imprimir(&maquina,2,20);
//Maestra
imprimirM(&maestra,2,50);
//cantar
cantar(&limite,&cartonM);
cantar(&limite,&cartonM);
system("pause");
break;
case '3':
exit(0);
break;
default:
system("cls");
printf("Opcion invalida\n");
system("pause");
break;
}//fin de switch
}
system("pause");
return 0;
}
//generar los cartones
int asignar_columna(int fila,int columna,carton *cart, int limite){
int num=0;
num=limite+(rand()%15);
for(int k=0; k< fila; k++) //Numeros que no se repitan
{
if(num==cart->a[k][columna])
{
num = limite+(rand()%15);
k=-1;
}
}
return num;
}
int asignar_columnaM(int fila,int columna,cartonM *cartM, int limite){
int num=0;
num=limite+(rand()%15);
for(int k=0; k< fila; k++) //Numeros que no se repitan
{
if(num==cartM->b[k][columna])
{
num = limite+(rand()%15);
k=-1;
}
}
return num;
}
void generar_c(carton *cart){//Jugador y Maquina
int num=0;
for(int j=0, limite=1;j<5;j+=1,limite+=15){//columna
for(int i=0;i<5;i+=1){//fila
num=asignar_columna(i,j,cart,limite); //Numeros que no se repitan
cart->a[i][j]=num;
}
}
}
void generar_cartonM(cartonM *cartM){//Maestra
int num=0;
for(int j=0, limite=1;j<5;j+=1,limite+=15){//columna
for(int i=0;i<15;i+=1){//fila
num=asignar_columnaM(i,j,cartM,limite);
cartM->b[i][j]=0;
}
}
}
int cantar(int limite,cartonM *cartM){
int num=0;
int i,dupl;
for(int i=0;i<75;i+=1){
do{
num = limite+(rand()%75);
}while(sin_repetir_pizarra(num,cartM));
if(num<=15){
printf("B %i\n",num);
}
else
if(num>15 && num<=30){
printf("I %i\n",num);
}
else
if(num>30 && num<=45){
printf("N %i\n",num);
}
else
if(num>45 && num<=60){
printf("G %i\n",num);
}
else{
printf("0 %i\n",num);
}
return 0;
}
}
bool sin_repetir_pizarra(int num,cartonM *cartM){
for(int i=0; i<15; i++){
if((num>=1) && (num<=15)){
if(num == cartM->b[i][0]){//SI EL NUMERO ESTA DEVUELVE VERDADERO
return true;
}
}
if((num>=16) && (num<=30)){
if(num == cartM->b[i][1]){//SI EL NUMERO ESTA DEVUELVE VERDADERO
return true;
}
}
if((num>=31) && (num<=45)){
if(num == cartM->b[i][2]){//SI EL NUMERO ESTA DEVUELVE VERDADERO
return true;
}
}
if((num>=46) && (num<=60)){
if(num == cartM->b[i][3]){//SI EL NUMERO ESTA DEVUELVE VERDADERO
return true;
}
}
if((num>=61) && (num<=75)){
if(num == cartM->b[i][4]){//SI EL NUMERO ESTA DEVUELVE VERDADERO
return true;
}
}
}
return false;
}
void marcar_carton(int num,carton *cart,cartonM *cartM){
for(int i=0;i<5,i<15;i+=1){//filas
for(int j=0;j<5;j+=1){//columnas
if(cart->a[i][j]==num){
cart->a[i][j]=0;
}
if(cart->a[i][j]==num){
cart->a[i][j]=0;
}
if(cartM->b[i][j]==0){
if (num<=15){
cartM->b[num-1][0]=num;
}
}
if(cartM->b[i][j]==0){
if (num>15 && num<=30){
cartM->b[num-16][1]=num;
}
}
if(cartM->b[i][j]==0){
if (num>30 && num<=45){
cartM->b[num-31][2]=num;
}
}
if(cartM->b[i][j]==0){
if (num>45 && num<=60){
cartM->b[num-46][3]=num;
}
}
if(cartM->b[i][j]==0){
if (num>60 && num<=75){
cartM->b[num-61][4]=num;
}
}
}
}
}
//imprimir
void imprimir(carton *cart, int fil, int col){
int c=col;
gotoxy(fil-2,col);printf("B");
gotoxy(fil-2,col+4);printf("I");
gotoxy(fil-2,col+7);printf("N");
gotoxy(fil-2,col+10);printf("G");
gotoxy(fil-2,col+13);printf("O");
for(int i=0;i<5;i+=1){//filas
for(int j=0;j<5;j+=1){//columnas
gotoxy(fil,col);printf("%i",cart->a[i][j]);
col+=3;
}
col=c;
fil+=3;
}
}
void imprimirM(cartonM *cartM, int fil, int col){//Maestra
int c=col;
gotoxy(fil-2,col);printf("B");
gotoxy(fil-2,col+4);printf("I");
gotoxy(fil-2,col+7);printf("N");
gotoxy(fil-2,col+10);printf("G");
gotoxy(fil-2,col+13);printf("O");
for(int i=0;i<15;i+=1){//filas
for(int j=0;j<5;j+=1){//columnas
gotoxy(fil,col);printf("%i",cartM->b[i][j]);
col+=3;
}
col=c;
fil+=3;
}
}
void gotoxy(int fila,int col){
HANDLE hConsoleOutput;
COORD d;
hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
d.X=col; d.Y=fila;
SetConsoleCursorPosition (hConsoleOutput, d);
}