Ir ao conteúdo
  • Cadastre-se

Infante98

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Reputação

17

1 Seguidor

  1. Infante98

    C Jogo em C V2

    Obrigado pela ajuda!! Também já consegui fazer o programa repetir caso o utilizador queira. Só falta mesmo a parte de gerar 4 números aleatórios que não se repitam entre si.
  2. Infante98

    C Jogo em C V2

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int vetor[4], i, tentativas = 20, senhaUsuario[4], j, correto = 0, errou = 0, num; int numero_certo_posicao_certa = 0; int numero_certo_posicao_errada = 0; int vetor1[4] = { 0 }; int senhaUsuario1[4] = { 0 }; char continuar = 's'; srand(time(NULL)); do { printf("\n Chave: "); // Apenas para Versão de Teste. for (i = 0; i < 4; i++) { vetor[i] = 1 + (rand() % 8); printf("%d ", vetor[i]); // Apenas para versão de Teste. } while (tentativas > 0) { printf("\n\n Insira uma Chave (Composta por 4 numeros com um espaco entre os digitos): "); for (i = 0; i < 4; i++) { scanf("%d", &senhaUsuario[i]); } for (i = 0; i < 4; i++) { if (vetor[i] == senhaUsuario[i]) { numero_certo_posicao_certa++; vetor1[i] = 1; senhaUsuario1[i] = 1; if (numero_certo_posicao_certa == 4) { printf("\n Parabens! voce Acertou na Chave! Tentativas usadas: %d \n", tentativas); tentativas = 0; } } } for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (vetor[j] == senhaUsuario[i] && vetor1[j] == 0 && senhaUsuario1[i] == 0) { numero_certo_posicao_errada++; vetor1[j] = 1; senhaUsuario1[i] = 1; } } } for (i = 0; i < 4; i++) { vetor1[i] = 0; senhaUsuario1[i] = 0; } tentativas--; errou++; if (tentativas > 0) { printf("\n %d Numeros Certos na posicao Certa.", numero_certo_posicao_certa); printf("\n %d Numeros Certos na posicao Errada", numero_certo_posicao_errada); printf("\n Tentativas Restantes: ( %d )", tentativas); printf("\n---------------------------------------------------------------------------------------\n"); } numero_certo_posicao_certa = 0; numero_certo_posicao_errada = 0; } if (errou == 20) { printf("\n GAME OVER !!! (A Chave era: "); for (i = 0; i < 4; i++) { printf("%d ", vetor[i]); } printf("\n\n"); } printf("\n Pretende Jogar Novamente? [s/n]"); scanf(" %c", &continuar); printf("\n---------------------------------\n"); printf("\n---------------------------------\n"); } while (continuar == 's' || continuar == 'S'); printf("\n Acabou! \n"); system("pause"); } Boa noite, precisava de ajuda para corrigir 3 coisas neste jogo que fiz: 1 - Ao criar os 4 números aleatórios, fazer com que eles sejam obrigatoriamente diferentes uns dos outros. 2 - Fazer o programa dizer ao utilizador em quantas tentativas adivinhou o resultado correto. 3 - Perguntar ao utilizador se quer repetir o programa (utilizei um do while mas não está a funcionar) Desde já obrigado pela ajuda.
  3. Infante98

    C Jogo MasterMind em C

    Obrigado pela ajuda! Só uma questao: Porque é que este vetor tem de ter 10 elementos?
  4. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> #define V_MAX 8 // Valor máximo definido numa constante. int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4); int main() { int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4); chave_sorteada(0, 0, 0, 0); printf("\n A chave do programa eh %i %i %i %i \n", chave_sorteada); system("pause"); } int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4) { srand(time(NULL)); numero_1 = 1 + rand() % 8; // Para tirarmos o primeiro número á sorte. numero_2 = 1 + rand() % 8; // Para tirarmos o segundo número á sorte. numero_3 = 1 + rand() % 8; // Para tirarmos o terceiro número á sorte. numero_4 = 1 + rand() % 8; // Para tirarmos o quarto número á sorte. while (numero_1 == numero_2 || numero_1 == numero_3 || numero_1 == numero_4 || numero_2 == numero_3 || numero_2 == numero_4 || numero_3 == numero_4) { numero_1 = 1 + rand() % 8; // Para tirarmos o primeiro número á sorte. numero_2 = 1 + rand() % 8; // Para tirarmos o segundo número á sorte. numero_3 = 1 + rand() % 8; // Para tirarmos o terceiro número á sorte. numero_4 = 1 + rand() % 8; // Para tirarmos o quarto número á sorte. } return numero_1, numero_2, numero_3, numero_4; } Boa tarde, estou a tentar elaborar um programa que crie o jogo MasterMind. Numa primeira fase, criei uma função para gerar 4 números aleatórios de 1 a 9, e retornar esses valores para a função main. Enquanto algum dos 4 números for igual, o programa deve gerar 4 novos números até todos serem diferentes e por isso utilizei o ciclo while. A minha dúvida é porque é que o printf não está a imprimir 4 números aleatórios de 1 a 9. E saber se em vez de retornar os 4 valores individualmente, poderia retornar esses 4 valores num vetor. Desde já obrigado pela ajuda.
  5. Funcionou, obrigado a todos pela ajuda!
  6. adicionado 0 minutos depois continua o erro
  7. Desculpe, não estou a ver onde
  8. ahh pois foi, obrigado! Continua a aparecer um erro nesta linha: if (strings_iguais("casa", "casa"))
  9. Boas, fiz um programa bem simples apenas para verificar a igualdade entre 2 strings, mas o meu compilador (visualStudio 2019) diz que tem erros na parte do "_Bool". Alguém pode explicar porquê e o que tenho de fazer para corrigir o problema? #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { _Bool strings_iguais(char s1[], char s2[]); if (strings_iguais("casa", "casa")) { printf("\n As strings sao Iguais. \n"); } else { printf("\n As strings nao sao Iguais. \n"); } system("pause"); } _Bool strings_iguais(char s1[], char s2[]) { int i = 0; while (s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0') { ++i; } if (s1[i] == '\0' && s2[i] == '\0') { return 1; } else { return 0; } }
  10. Obrigado pelas dicas, no próximo post vou implementar. Quanto ao programa, o meu objetivo é fazer os cinco pontos propostos: -pedir o número de contactos a inserir; -permitir inserir os n contactos; -perguntar qual o número do contacto que pretende visualizar; -mostrar contacto pretendido; - repetir todo o processo se o utilizador assim o desejar. Não consigo entender como vou fazer isso tudo.
  11. Boa Tarde, depois de conseguir fazer o primeiro programa do pdf estou a tentar fazer o segundo mas não estou a conseguir. Tentei fazer um ciclo for mas não sei se está correto. Alguma ajuda? /*Repita o programa anterior criando um vector que permita guardar até 20 contactos. O programa deverá: o pedir o número de contactos a inserir o permitir inserir os n contactos o perguntar qual o número do contacto que pretende visualizar o mostrar contacto pretendido o repetir todo o processo se o utilizador assim o desejar*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct // Definição da Estrutura "Endereço" { char rua[50]; char numero[3]; char cidade[30]; char codigo_postal[9]; }tipo_endereco; typedef struct // Definição da Estrutura "Pessoal" { char nome[50]; int telefone[9]; tipo_endereco endereco; }ficha_pessoal; int main() { ficha_pessoal funcionario[20]; void funcionarios(ficha_pessoal funcionario[20]); funcionarios(0); //-------------------------------------------------------------------------------------------------// printf("\n--------------------------------------------------------------------------\n"); printf("\n--------------------------------------------------------------------------\n"); //-------------------------------------------------------------------------------------------------// printf("\n Nome do funcionario: %s", funcionario[20].nome); // Print das informações inseridas printf("\n Telefone do funcionario: %s", funcionario[20].telefone); printf("\n Rua do funcionario: %s", funcionario[20].endereco.rua); printf("\n Numero do funcionario: %s", funcionario[20].endereco.numero); printf("\n Codigo Postal do funcionario: %s", funcionario[20].endereco.codigo_postal); printf("\n Cidade do funcionario: %s \n\n", funcionario[20].endereco.cidade); system("pause"); } void funcionarios(ficha_pessoal funcionario[20]) { int n; printf("\n Quantos Contactos Pretende Inserir? \n"); scanf("%i", &n); for (int i = 0; i < n; i++) { printf("Digite o Nome do funcionario: "); // Estrutura Pessoal scanf("%s", funcionario[20].nome); printf("Digite o Telefone do funcionario: "); // Estrutura Pessoal scanf("%s", funcionario[20].telefone); printf("Digite a Rua do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.rua); printf("Digite o Numero da Rua do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.numero); printf("Digite o Codigo Postal do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.codigo_postal); printf("Digite a Cidade do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.cidade); } }
  12. entendi na perfeição, excelente explicação! Obrigado pela ajuda!
  13. sim, como faço para dar scanf numa estrutura e depois de inserir os dados imprimir tudo na tela.

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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!