Ir para conteúdo
Fórum Script Brasil
  • 0

Bingo


llmls__

Pergunta

Preciso criar uma função para verificar se há números iguais numa mesma cartela(ou seja, cada linha), se houver, deve ser sorteada uma nova matriz.

E preciso que a função verificar mostre a cartela vencedora (ou toda a linha, ou só a posição da cartela)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <windows.h>

#define LI 3
#define COLU 3

void cartelas(int num[LI][COLU], int copia[LI][COLU]) {
    // Preencher cartelas e fazer cópia
    for (int i = 0; i < LI; i++) {
        for (int j = 0; j < COLU; j++) {
            num[i][j] = 1 + ( rand() % 6 );
        }
    }
   for(int i = 0; i< LI; i++){
        printf("\n");

         for(int j = 0; j< COLU; j++){
            printf("|%d|    ", num[i][j]);
}
}
    for (int i = 0; i < LI; i++) {
        for (int j = 0; j < COLU; j++) {
            copia[i][j] = num[i][j];
        
        }
    }
    
}

void verificar(int vetor[LI]) {
    int c = 0;
    
    for (int i = 0; i < LI; i++) {
        if (vetor[i] == -1) {
            c++;
        }
    }
    
    if (c == COLU) {
        printf("A cartela venceu!\n");
      
    }
}

int comparar(int num[LI][COLU], int copia[LI][COLU], int sort) {
    int c = 0; // Variável para contar as marcações
    
    // Comparar com o número sorteado
    for (int i = 0; i < LI; i++) {
        for (int j = 0; j < COLU; j++) {
            if (copia[i][j] == sort) {
                copia[i][j] = -1;
                c++; // Incrementar a contagem
                verificar(copia[i]);
            }
        }
    }
    
    return c; // Retornar a contagem
}

void sortear(int num[LI][COLU], int copia[LI][COLU]) {
    int c = 0; // Inicializar a contagem
    while (c < COLU) {
        // Sortear o número
        int sort = 1 + ( rand() % 6 );
        printf("\nNúmero sorteado: %d\n", sort);
        Sleep(1000); // Aguardar 1 segundo
        c = comparar(num, copia, sort);
    }
}

int menu() {
    // Menu
    int opcao;
    printf("\n 1 - Jogar\n 2 - Sortear\n 3 - Sair\n");
    scanf(" %d", &opcao);
    return opcao;
}

void instrucoes() {
    int escolha;
    int num[LI][COLU], linha, cartela[LI][COLU];
    
    printf("\nINSTRUÇÕES\n");
    printf("\nSerão geradas aleatoriamente 10 cartelas com 15 números e uma sequência de números de 15 caracteres correspondente à cartela vencedora.");
    printf("\nCaso nenhuma das 10 cartelas seja sorteada, será efetuado um novo sorteio até que haja uma vencedora.\n");
    system("pause");
    system("cls");
}

int main() {
    setlocale(LC_ALL, "PORTUGUESE");
    int sort, num[LI][COLU], copia[LI][COLU], opcao, cartela[LI][COLU];
    srand(time(NULL));
    
    printf("\nSeja muito bem-vindo(a) ao nosso bingo!");
    
    do {
        opcao = menu();
        printf("%d", opcao);
        
        switch (opcao) {
            case 1:
                instrucoes();
                cartelas(num, copia);
                break;
            case 2:
                sortear(num, copia);
                break;
            case 3:
                printf("Muito obrigado por jogar!\n");
                break;
            default:
                printf("Opção inválida\n");
        }
    } while (opcao != 3);
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...