Mayara Mendes Galzo
-
Posts
2 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Mayara Mendes Galzo
-
-
Boa tarde, estou com uma duvida enorme.
Preciso fazer um jogo em c, que aceite até 4 usuarios e gere ate 4 cartões para cada um. Mas não estou entendendo a logica.
Qualquer ajuda é bem vinda.
Parte do codigo que consegui
Tem varios erros
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
#define NOME 20void gerandoCartela(int M[][5]);
void checar(int M[4][5], void sorteado);
int sorteado();main() {
setlocale(LC_ALL, "Portuguese");
srand(time(NULL));
int op, voltar, i, l, c, n, j, quadra, linha, bingo, acumulado, bola, teste, para, pessoas, k;
int cartela[4][5], cart, cart2[4][5], cart3[4][5], cart4[4][5], Mat[4][5], sorteio[50];
char jogador[NOME], nome2[NOME], nome3[NOME], nome4[NOME], sn[3], f[3];
printf("\t\t\tBEM VINDO AO BINGO!\n");
printf("Escolha uma das opções abaixo \n");
printf("1 - Gerar cartelas \n");
printf("2 - Mostrar cartelas \n");
printf("3 - Regras e como jogar \n");
printf("4 - Jogar \n");
printf("5 - Ver os números do bingo que foram gerados\n");
printf("6 - Sair \n");
scanf("%d", &op);
switch(op){
case 1 :
system("cls");
printf("Jogar contra o computador? \n");
scanf("%s", sn);
if (stricmp(sn, "sim") == 0){
system("cls");
printf("Qual seu nome: ");
scanf("%s", &jogador[NOME]);
printf("Quantas cartelas você vai querer? \n");
scanf("%d", &cart);
if(cart > 4){
system("cls");
printf("Só podem ser escolidas até quatro cartelas.");
}
if(cart == 1){
system("cls");
gerandoCartela(Mat);
printf("\n\nVocê aceita essa cartela ???");
scanf("%s", &f);
while(f != "nao"){
if(stricmp(f, "nao")== 0){
system("cls");
gerandoCartela(Mat);
printf("\n\nVocê aceita essa cartela?\n");
scanf("%s", &f);
}
else
if(stricmp(f, "sim")== 0){
}
}
}
if(cart == 2){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\nVocê aceita essas cartelas ???");
scanf("%s", &f);
while(f != "nao"){
if(stricmp(f, "nao")== 0){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\nVocê aceita essas cartelas ???\n");
scanf("%s", &f);
}
else
if(stricmp(f, "sim")== 0){
}
}
} /*
if(cart == 3){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\n\n");
gerandoCartela(cart2);
printf("\n\nVocê aceita essas cartelas ???");
scanf("%s", &f);
while(f != "nao"){
if(stricmp(f, "nao")== 0){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\n\n");
gerandoCartela(cart2);
printf("\n\nVocê aceita essas cartelas ???\n");
scanf("%s", &f);
}
else
if(stricmp(f, "sim")== 0){
}
}
}
if(cart == 4){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\n\n");
gerandoCartela(cart2);
printf("\n\n\n");
gerandoCartela(cart3);
printf("\n\nVocê aceita essas cartelas ???");
scanf("%s", &f);
while(f != "nao"){
if(stricmp(f, "nao")== 0){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\n\n");
gerandoCartela(cart2);
printf("\n\n\n");
gerandoCartela(cart3);
printf("\n\nVocê aceita essas cartelas ???\n");
scanf("%s", &f);
}
else
if(stricmp(f, "sim")== 0){
gerandoCartela(int cartela[5][4]);
}
}
}
}
else{
if (stricmp(sn, "nao") == 0){
printf("Qual seu nome: ");
scanf("%s", &jogador[NOME]);
printf("Com qunatos adversarios você vai jogar ???");
printf("\nOBS: Só serão aceitas até 4 pessoas, incluindo você.\n");
scanf("%d", &pessoas);
if(pessoas > 4){
system("cls");
printf("Só pode jogar até quatro pesssoas.");
printf("\nDigite novamente o numero de pessoas.");
}
switch(pessoas){
case 1:
system("cls");
printf("\nQual o nome do outro jogador\n");
scanf("%s", &nome2[NOME]);
printf("");
break;
case 2:
system("cls");
printf("\nQuais os nomes dos outros 2 jogadores\n");
scanf("%s", &nome2[NOME]);
scanf("%s", &nome3[NOME]);
break;
case 3:
system("cls");
printf("\nQuais os nomes dos outros 3 jogadores\n");
scanf("%s", &nome2[NOME]);
scanf("%s", &nome3[NOME]);
scanf("%s", &nome4[NOME]);
break;
}
}*/
}
break;
case 2:
break;
case 3:
break;
case 4:
checar(Mat, sorteio);
break;
case 5:
break;
case 6:
break;
default:
break;
}
getch();
}int sorteado(){
int i, j;
int sorteado[50];
for (i = 0; i <5; i++){
sorteado = rand() % 9;
for(j = 1; j < i; j++)
if(sorteado[i ]== sorteado[j])
sorteado = rand() % 50;
}
return sorteado;
}//Função que verifica se o numero da sorteado é igual ao da matriz
void checar(int M[4][5], int sorteado){
int i, j;
for(i = 0; i < 4; i++) {
for(j = 0; j < 5; j++) {
if(M[j] == sorteado){
M[j] *= -1;
}
}
}
}
//Função que gera a matriz
void gerandoCartela(int M[][5]){
//variaveis i,j,k,z, fazem a matriz.
int i, j, k, z, aux;
for(i = 0 ; i < 4 ; i++){
for(j = 0; j < 5; j++){
M[j]=0;
}
}
for(i = 0; i < 4; i++){
for(j = 0; j < 5; j++){
aux=1;
while(aux == 1){
aux=0;
//Sorteia o numero
M[j] = 1+ rand() % 50;
//Verifica se o numero e repetido
for(k = 0; k < 4 && aux==0; k++){
for(z = 0; z < 5 && aux==0; z++){
if(M[j] == M[k][z] && (i != k || j != z)){
aux=1;
}
}
}
//Se for repetido sorteia de novo
}
}
}
printf("\tB\t\tI\t\tN\t\tG\t\tO\n");
printf("_____________________________________________________________________________\n");
for(i = 0; i < 4; i++){
for(j = 0; j < 5; j++){
printf("\t%d\t", M[j]);
}
printf("\n");
}
}
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Como gravar apresentar uma função
em C/C#/C++
Postado
Boa tarde, criei uma função para gerar numeros aleatorios de uma matriz x:
void gerandoCartela(int M[][5]){
//variaveis i,j,k,z, fazem a matriz.
int i, j, k, z, aux;
for(i = 0 ; i < 4 ; i++){
for(j = 0; j < 5; j++){
M[j]=0;
}
}
for(i = 0; i < 4; i++){
for(j = 0; j < 5; j++){
aux=1;
while(aux == 1){
aux=0;
//Sorteia o numero
M[j] = 1+ rand() % 50;
//Verifica se o numero e repetido
for(k = 0; k < 4 && aux==0; k++){
for(z = 0; z < 5 && aux==0; z++){
if(M[j] == M[k][z] && (i != k || j != z)){
aux=1;
}
}
}
//Se for repetido sorteia de novo
}
}
}
printf("\tB\t\tI\t\tN\t\tG\t\tO\n");
printf("_____________________________________________________________________________\n");
for(i = 0; i < 4; i++){
for(j = 0; j < 5; j++){
printf("\t%d\t", M[j]);
}
printf("\n");
}
}
Agora quando vou apresentar seu valor não aparece nada, o que devo fazer ??
if(cart == 2){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\nVocê aceita essas cartelas ???");
scanf("%s", &f);
while(f != "nao"){
if(stricmp(f, "nao")== 0){
system("cls");
gerandoCartela(Mat);
printf("\n\n\n");
gerandoCartela(cartela);
printf("\n\nVocê aceita essas cartelas ???\n");
scanf("%s", &f);
}
else
if(stricmp(f, "sim")== 0){
printf("%d%d", Mat);
}
}
}
PFV me ajudem