Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Halmen

Jogo de Bingo.

Recommended Posts

Ola pessoal eu gostaria que alguem me ajudasse a melhorar o meu programa que estou fazendo. Ele funciona mas so que eu quero que as cartelas com numeros não ficam repetidos. Porque sempre que gera a cartela os numeros se repetem. Me ajudem por favor. Um grande abraço a todos.

 

Esse é meu programa. Tentem analizar.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define SOMA 1
#define NOME 20
#define JOG 6
#define LIN 2
#define COL 15
int verifica(int jog, int linha, int coluna, int boll, int gamer[JOG][LIN][COL]);
int numbola();
int randnume();
int randcart();    /*Declaracao de todas as funcoes.*/
void regras(void);
void inicio(void);
void main(void) /*Inicio do main*/
{ /*Declaracao de variaveis*/
char op;
static int cartao[JOG][LIN][COL], cart[JOG];
static char jogador[JOG][NOME];
int l, c, n, j, bola, teste, vetorsoma[JOG][LIN][COL], soma[JOG][LIN], pausa;
int quadra, linha, bingo, acumulado;
clrscr();
for(j = 0; j < JOG; j++) /*Laco onde rodam todos os jogaroes e*/
{ /*preenchem a qnde de cartelas com seus numeros*/
textcolor(11);
cprintf("\nQual seu nome jogador? "); scanf("%s", &jogador[j][NOME]);
printf("\nSeu numero de cartela(s) sera sorteado.\n");
printf("\n");
cart[j] = randcart(); /*Numero de cartelas eh sorteado*/
printf("\nJogara com %d cartelas\n", cart[j]);
for(l = 0; l < cart[j]; l++) {
for(c = 0; c < COL; c++) {
cartao[j][l][c] = randnume(); /*Numeros das cartelas sao sorteados*/
textcolor(4);
printf("-%d-", cartao[j][l][c]); }
printf("\n");
}
getch();
clrscr();
}
inicio(); /* primeira declaracao desta funcao: cria um placar de enfeite*/
textcolor(4); gotoxy(4,8);
printf("Entrem os participantes: ");
gotoxy(1,10);
for(j = 0; j < JOG; j++) { /*Laco que imprime os participantes e suas cartelas*/
printf("Senhor(a) %s, sua cartela eh:\n", &jogador[j][NOME]);
for(l = 0; l < cart[j]; l++) {
printf("\n================================================================\n");
printf("||");
for(c = 0; c < COL; c++) {
printf("-%d-", cartao[j][l][c]); } cprintf("||");
printf("\n================================================================\n");
printf("\n"); }
}
getch(); clrscr();
textcolor(11); gotoxy(8,8);
cprintf("Precione qualquer tecla para comecar o jogo");
getche(); clrscr(); inicio();
gotoxy(4,8); /*Chama as regras do jogo, se o usu rio desejar*/
cprintf("Quer estudar as regras do jogo(S-N)? ");
if((op = getche()) == 's' || (op = getche()) == 'S')
{ clrscr();
regras();} /*Funcao para escrever as regras*/
getche(); clrscr(); inicio();
gotoxy(4,8);
cprintf("Vamos sortear as bolas. Boa sorte, jogadores!");
for(j = 0; j < JOG; j++) { /*Laco duplo, para inicializar a variavel*/
for(l = 0; l < cart[j]; l++) {soma[j][l] = 0;}} /*soma[j][l]*/
quadra = 1; linha = 1; bingo = 1; acumulado = 1;
for(n = 0; n < 90; n++) /*Inicio das bolas e do jogo*/
{ /*Laco principal*/
getche(); clrscr(); inicio();
gotoxy(4,8); /*Observe a funcao inicio() sempre sendo requisitada*/
cprintf("Vamos sortear as bolas. Boa sorte, jogadores!");
gotoxy(4,10);
bola = numbola();/*Chama funcao que sorteia a bola e poe o resultado*/
cprintf("A %da bola eh: %d", n+1, bola); /*na variavel 'bola'*/
getche(); clrscr(); inicio();
for(j = 0; j < JOG; j++) { /*Laco triplo: permite comparar desde o*/
for(l = 0; l < cart[j]; l++) { /*primeiro numero da primeira cartela*/
for(c = 0; c < COL; c++) { /*do primeiro jogador, com cada bola sorteada*/
teste = verifica(j,l,c,bola,cartao);/*Funcao que compara*/
if(teste == 's') vetorsoma[j][l][c] = 1; /*Aqui, eh criado um novo vetor,*/
else vetorsoma[j][l][c] = 0; /*vetorsoma[][][], onde sera de 1s e 0s*/
soma[j][l] += vetorsoma[j][l][c]; /*para todos os 1s serem somados*/
if(soma[j][l] == 4 && quadra) {
gotoxy(2,15); /*Sendo a soma igual a 4, tem a quadra*/
cprintf("Senhor(a) %s diz: CONSEGUI, GANHEI A QUADRA!!!", &jogador[j][NOME]);
quadra = 0; }/*Dado novo valor para a variavel, para laco n se repetir*/
else if(soma[j][l] == 5 && linha) {
gotoxy(2,15);/*Sendo a soma igual a 5, tem a linha*/
cprintf("Senhor(a) %s diz: CONSEGUI, GANHEI A LINHA!!!", &jogador[j][NOME]);
linha = 0; }/*Dado novo valor para a variavel, para laco n se repetir*/
else if(soma[j][0] == 15 && bingo|| (soma[j][0]+soma[j][1]) == 30 && bingo) {
gotoxy(2,15); /*Todos os numeros das cartelas preenchidos, temos bingo*/
cprintf("Senhor(a) %s diz: CONSEGUI, GANHEI O BINGO!!!", &jogador[j][NOME]);
bingo = 0; }/*Dado novo valor para a variavel, para laco n se repetir*/
else if(n <= 40 && soma[j][0] == 15 && acumulado || n == 40 && (soma[j][0]+soma[j][1] && acumulado) == 30) {
gotoxy(2,15);/*Todos os numeros em 40 bolas, ou menos, acumulada*/
cprintf("Senhor(a) %s diz: CONSEGUI, GANHEI O ACUMULADO!!!", &jogador[j][NOME]);
acumulado = 0;/*Dado novo valor para a variavel, para laco n se repetir*/
pausa = 1; } /*Entrando no laco da acumulada, d valor de 1 para "pausa"*/
}}}
if(pausa == 1) {
gotoxy(2,20);
cprintf("FIM DE JOGO! PARABENS, VENCEDOR!!!"); goto Fim; } /*Cursor vai para o "Fim:"*/
}
Fim:
getch();
}
/*Fim do programa principal. Fim do main().*/
void inicio(void)
{ /*Funcao sempre requisitada*/
textcolor(14); /*Imprime uma tela especial*/
gotoxy(28,2);
cprintf("=========================\n");
gotoxy(28,3);
cprintf("||----JOGO DO BINGO----||\n");
gotoxy(28,4);
cprintf("=========================\n");
}
void regras(void)
{ /*Funcao que imprime as regras do jogo*/
textcolor(14);
gotoxy(28,2);
cprintf("=========================\n");
gotoxy(28,3);
cprintf("||----REGRAS DO JOGO----||\n");
gotoxy(28,4);
cprintf("=========================\n");
textcolor(11);
gotoxy(1,7);
printf("Os premios do jogos sao: Quadra, Linha, Bingo e Acumulado\n\n\n");
printf("Quadra: O primeiro jogador a preencher 4 numeros horizontais\n ");
printf("de qualquer das linhas da cartela, premio R$100,00\n\n\n");
printf("Linha: O primeiro jogador a preencher os 5 numeros horizontais\n ");
printf("de qualquer das linhas da cartela, premio R$ 120\n\n\n");
printf("Bingo: O primeiro jogador a preencher todos os numeros da cartela, premio R$300,00\n\n\n");
printf("Acumulado: O primeiro jogador a preencher a cartela até a 40a bola, premio R$400,00\n\n\n");
printf("\n\n\n");
gotoxy(3,30);
cprintf("Digite qualqer tecla para continuar");
getche();
}
int randnume()
{ /*Funcao que sorteia os numeros dos cartoes*/
int numero; /*Retorna inteiros*/
numero = random(90)+1;
return(numero);
}
int randcart()
{ /*Funcao que sorteia a qnde de cartoes*/
int cart; /*Retorna inteiro*/
cart = random(2)+1;
return(cart);
}
int numbola()
{ /*Funcao que escolhe um numero de 1 a 90*/
int bola; /*Retorna este numero*/
bola = random(90)+1;
return(bola);
}
int verifica(int jog, int linha, int coluna, int boll, int gamer[JOG][LIN][COL])
{
if(gamer[jog][linha][coluna] == boll)
{ return('s'); } /*Funcao complexa. Compara a bola sorteada com*/
} /*o numero respectivo do cartao*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

e c você jogar os numeros q forem sendo gerados em um vetor...

assim qnd fosse gerar ele iria verificar c o numero jah existe, c existe gera outro.

 

--

outra coisa naum me lembro onde peguei esse código da net, + deixei ele guardado aki cmg :lol:

veja:

 

#include <iostream>
#include <conio.h>
#include <vector>
#include <cstdlib>
using namespace std; 
vector<int> lista;
main(){
for( int i = 1; i <= 60; i++ ) {
	lista.push_back(i);
}

srand((unsigned) time(NULL));

int vetor_sorteados[5];
int numSorteados = 0;

while( numSorteados < 5 ) {
	int s = rand() % lista.size();
	vetor_sorteados[numSorteados] = lista[s];
	lista.erase(lista.begin() + s);
	numSorteados++;
}

for( int i = 0; i < numSorteados; i++ )
	cout << vetor_sorteados[i] << " ";
	getch();
}

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.