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 - reylor

#1
Programación C/C++ / Error con un número
14 Enero 2019, 09:47 AM
La cosa es que mi programa funciona correctamente, hasta que saca un numero y el contador se vuelve loco. El código es un bingo, el cual crea dos cartones y va creando bolas y gana el primer cartón que descarte mas números, y lo que pasa, es que, todo funciona bien, hasta que sale el numero 88, cuando sale ese número, los contadores se vuelven locos y no he conseguido encontrar el error tonto que tendré, si alguien me puediese ayudar..!. Les dejo el código abajo, con la parte donde yo creo que esta el error separado por /*****, gracias.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>

void ImprimoPrincipio();
int GeneradorNumero();
void ImprimirCarton1(int[]);
void ImprimirCarton2(int[]);

int main(void){
    int y=0, z, a, sacadas[100], bolas=0, final=0, contador1=0, contador2=0;
    int numerosCarton1 [100], numerosCarton2[100], numerosBolas[100];
    int vectorCarton1[20], vectorCarton2[20];
    srand(time(NULL));
    ImprimoPrincipio();
    for(int i=0;i<100;i++){             //Genero numeros de Carton1 (100)
        numerosCarton1[y]=i+1;
        y++;
    }
    y=0;
    for(int j=0;j<100;j++){             //Genero numeros de Carton2 (100)
        numerosCarton2[y]=j+1;
        y++;
    }
    y=0;
    for(int u=0;u<100;u++){             //Genero numeros de bolas (100)
        numerosBolas[y]=u+1;
        y++;
    }
    for(int i=0;i<20;i++){                  //Creo vectorCarton1 (20)
        do{
            z=GeneradorNumero();
        }while(numerosCarton1[z]==0);
        vectorCarton1[i]=numerosCarton1[z];
        numerosCarton1[z]=0;
    }
    for(int j=0;j<20;j++){                      //Creo vectorCarton2 (20)
        do{
            z=GeneradorNumero();
        }while(numerosCarton2[z]==0);
        vectorCarton2[j]=numerosCarton2[z];
        numerosCarton2[z]=0;
    }
    printf("\nCarton1:\n");
    ImprimirCarton1(vectorCarton1);
    printf("\nCarton2:\n");
    ImprimirCarton2(vectorCarton2);
    getchar();
    do{
        system("cls");
        ImprimoPrincipio();
        do{
            z=GeneradorNumero();
        }while(numerosBolas[z]==0);
        a=numerosBolas[z];
        numerosBolas[z]=0;
        sacadas[bolas]=a;
        printf("Bolas: ");
        for(int i=0;i<=bolas;i++){
            printf("%d ", sacadas[i]);
        }
        bolas++;
        //**************************************************
        for(int j=0;j<20;j++){
            if(vectorCarton1[j]==a&&a!=88){
                vectorCarton1[j]=0x58;
                contador1++;
                printf("\nContador1=%d\n",contador1);
            }
            if(vectorCarton1[j]==a&&a==88){
                vectorCarton1[j]=0x58;
                contador1++;
                printf("\nContador1=%d\n",contador1);
            }
        }
        for(int u=0;u<20;u++){
            if(vectorCarton2[u]==a&&a!=88){
                vectorCarton2[u]=0x58;
                contador2++;
                printf("\nContador2=%d\n",contador2);
            }
            if(vectorCarton2[u]==a&&a==88){
                vectorCarton2[u]=0x58;
                contador2++;
                printf("\nContador2=%d\n",contador2);
            }
        }
        //******************************************************
        printf("\nCarton1:\n");
        ImprimirCarton1(vectorCarton1);
        printf("\nCarton2:\n");
        ImprimirCarton2(vectorCarton2);
        if(contador1==20){
            printf("Gana el Jugador 1\n");
            final=1;
        }
        if(contador2==20){
            printf("Gana el Jugador 2\n");
            final=1;
        }
        getchar();
    }while(final==0);
    return 0;
}

void ImprimoPrincipio(void){
    printf("----------------------------\n");
    printf("Juego del bingo simplificado\n");
    printf("----------------------------\n");
}

int GeneradorNumero(void){
    int num;
    num=rand()%100;
    return num;
}

void ImprimirCarton1(int vectorCarton1[]){
    int v;
    for(int j=0;j<20;j++){
        if(vectorCarton1[j]==0x58){
            printf("%c", vectorCarton1[j]);
            printf("  ");
            if(j==4||j==9||j==14||j==19){
                printf("\n");
            }
        }else{
            printf("%d",vectorCarton1[j]);
            v=vectorCarton1[j]/10;
            if(v<1){
                printf("  ");
            }else{
                printf(" ");
            }
            if(j==4||j==9||j==14||j==19){
                printf("\n");
            }
        }
    }
}

void ImprimirCarton2(int vectorCarton2[]){
    int v;
    for(int j=0;j<20;j++){
        if(vectorCarton2[j]==0x58){
            printf("%c", vectorCarton2[j]);
            printf("  ");
            if(j==4||j==9||j==14||j==19){
                printf("\n");
            }
        }else{
            printf("%d",vectorCarton2[j]);
            v=vectorCarton2[j]/10;
            if(v<1){
                printf("  ");
            }else{
                printf(" ");
            }
            if(j==4||j==9||j==14||j==19){
                printf("\n");
            }
        }
    }
}