Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - AYUDAAAAAA

#1
Programación C/C++ / Bingo estructuras ayuda
4 Septiembre 2017, 20:54 PM
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);
}