1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Master Mind

Discussão em 'Programação' iniciada por Ricky2007, 16 de Junho de 2007. (Respostas: 6; Visualizações: 1492)

  1. Ricky2007

    Ricky2007 Power Member

    precisava que me arranjassem um programa em c
    • O programa deve sortear 4 digitos e armazena-los num vector. Esses digitos nao podem ser repetidos e devm ser sorteados do intervalo 0 - 9;
    • O jogador deve adivinhar quais os digitos sorteados e as posições correctas destes, inserido em cada tentativa um conjunto de 4 digitos (tambem pode ser lido como um vector, por exemplo);
    • A cada jogada o programa deve informar quantos digitos estavam correctos e na posição correcta e quantos digitos estavam correctos na posição incorrecta. podem-do utilizar cores, numeros e caracteres.
    • O programa também deve informar os jogadores de quantas tentativas este ainda tem (no maximo 10) para tentar adivinhar
    • Se o jogador nao advinhar em 10 tentativas, o programa deve dar uma mensagem apropriada e informar qual a combinação que se procurava. Se o jogador advinhar antes, deve dar uma mensagem de parabens. Em ambos os casos o jogo termina.
    O programa deve começar por ler a informação relativa ao jogador e à data de realização do jogo e só depois passar ao jogo propriamente dito.
    Depois de terminado o jogo, devem ser armazenadas num ficheiro todas as informações principais do jogo (Informação do jogador, data de realização do jogo e resultado final obtido por este, victoria ou derrota);
    Após a conclusao do jogo deve ser possivel continuar a jogar ou terminar o programa.


    NOTA:

    -Use estruturas para guardar a informação de cada jogador e à data de realização do jogo;-Para sortear os digitos, deve ser utilizada a função random(n) do turbo C, que retorna o numero aleatorio entre 0 e n-1. Deve ser chamada tambem a função randomize(), para inicializar o gerador de numeros aleatorios. Para a utiçização das funçoes de sorteio, deve-se incluir as bibliotecas: #include<stdlib.h> e #include <time.h>.
    -pra exibir texto colorido deve ser utilizada a função cprintf(..) e nao printf (...).
    - Nao se esqueça de proteger o programa contra entradas indevidas.
    - Use e abuse de comentarios e funçoes.

    Este é o inunciado que me foi dado.

    Ajudem-me a fazer este programa.
     
    Última edição: 17 de Junho de 2007
  2. HecKel

    HecKel The WORM

    Ninguém te vai fazer o trabalho por ti. Pelo menos aqui.

    Agora falamos melhor, onde tens dúvidas? Começa a fazer o trabalho, e vai apresentando nesta thread as tuas dúvidas concretas, o pessoal ajuda-te e explica-te consoante as capacidades e disponibilidades de cada um, mas fazer trabalhos é que não...

    Boa sorte nisso ;)

    abraços, HecKel
     
  3. BladeRunner2019

    BladeRunner2019 Power Member

    Isso parece-me o mastermind...aquele jogo que toda a gente tinha aqui há uns anos que era uma caixa com uns pinos às cores..bons tempos.:-D
     
  4. alph

    alph Power Member

    Tendo em conta que não se pode repetir dígitos em cada sequência de 4, essa parte torna-se simples.

    Tens os 2 vectores como dizes, o correcto e a jogada. Para contar quantos estão na posição certa, é só ver quantos dígitos são iguais para cada posição igual dos vectores (jogada == correcto, para o mesmo i). Para contar quantos estão na posição errada, é fazer o mesmo mas do seguinte modo: jogada == correcto[j], para todos os j diferentes de i. É possível fazeres tudo isto simultaneamente.
     
  5. DevilBoy

    DevilBoy Banido

    Vê se isto te ajuda:

     
    Última edição pelo moderador: 20 de Junho de 2007
  6. jindrix

    jindrix Power Member

    Boas, desculpem estar a usar este tópico ''esquecido'', mas não achei necessário criar um novo.

    Tenho de fazer o jogo ''Mastermind 2D'' em fluxograma e pseudo-código, mas tenho umas dúvidas em que preciso da vossa ajuda.

    A chave a adivinhar é gerada pelo computador e o jogador humano é quem vai tentar descobrir. São 6 cores a poder usar e cada chave tem 4 cores. Por cada cor certa em casa certa, o computador coloca um pino preto, mas se a cor for correcta mas na casa errada, é colocado um pino branco. O jogador dispõe de 15 tentativas para acertar na chave. Agora as dúvidas:

    - As sequências que o jogador humano insere devem ser guardas num só array? Tava a pensar em fazer do tipo: sequencia 1(0 a 3), sequencia 2(4 a 7), etc., em que os números entre parêntesis representam os índices do array. A outra forma que eu estava a pensar era fazer um array para cada sequência, mas penso que seria menos viável;

    - Na atribuição de pinos pretos e brancos, estava a pensar fazer um sistema semelhante ao de cima, tendo em atenção que os pinos não são apresentados com qualquer relação à casa que representam.

    Devo dizer que estas dúvidas são consequência de eu ter visto nos jogos do mastermind que tenho jogado, que o jogador tem sempre acesso a todas as jogadas anteriores, daí eu ter pensado em fazer um array para cada jogada...

    Estou no 1º ano de engenharia mecânica(nota-se não é!?), de tal forma que esta não é bem a minha área.

    cumprimentos...
     
  7. jindrix

    jindrix Power Member

    Agradecia que alguém me pudesse responder à dúvida assim que possivel, pois não posso continuar o trabalho se esta não for esclarecida
     

Partilhar esta Página