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

fazer master mind no turbo c

Discussão em 'Programação' iniciada por Ricky2007, 18 de Junho de 2007. (Respostas: 2; Visualizações: 1946)

  1. Ricky2007

    Ricky2007 Power Member

    eu sou outro utilizador com a conta do ricky2007! eu sou o utilizador marco_cs! tou a uzar a conta do ricky2007 pk na minha nao consigo postar!




    no meu curso o trabalho final de 10º é fazer o genero do jogo do mastermind!( u enunciado do trabalho é o que ele ja postou anteriormente)

    o meu trabalho é efectuado com numeros e nao com butoes


    eu tou numa parte complicada, o meu trabalho xega
    a parte de dizer qual os numeros que estao nao posiçao correcta e correctos na posiçao errada e o meu trabalho nao chega a testar se os numeros tao correctos correctos na posiçao errad ect.

    eu queria que algem me ajudasse:





    vou deixar tudo o que fiz até agora;

    Código:
    
    #include <stdio.h>
    #include<string.h>
    #include <stdlib.h>
    #include <time.h>
    
    		typedef struct
    			{
    				char nick[30];
    				int idade;
    			}dados_utilizador;
    
    		typedef struct
    			{
    				int dia;
    				char mes[12];
    				int ano;
    			}data;
    
    		void utilizador(dados_utilizador *ptr)
    			{
    				printf("\n\n\n\n\n\t\t\tinsira o seu nick name -> ");
    				gets(ptr->nick);
    				printf("\t\t\tinsira a sua idade -> ");
    				scanf("%d", ptr->idade);
    			}
    
    		void ler_data(data *ptr)
    			{
    				printf("data :\n");
    				printf("dia->");
    				scanf("%d", &ptr-> dia);
    				printf("mes->");
    				scanf(" %s", ptr-> mes);
    				printf("ano->");
    				scanf("%d", &ptr-> ano);
    			}
    
    		int gerador()
    			{
    				int chave;
    					randomize();
    					chave=random(10);
    					return chave;
    			}
    
    		int inserxao_chave()
    			{
    				int chave_inserida;
    				do
    				{
    					scanf("%d", &chave_inserida);
    				}while((chave_inserida>9)||(chave_inserida<0));
    				return chave_inserida;
    			}
    
    
    
    				void main()
    					{
    					  int i, j; /* variaveis utilizadas para contadores*/
    					  int chave_gerada[4];
    					  int chave_inserida[4];
    					  int c_correct;
    					  int c_pos_incorrect;
    					  int c_errados;
    
    						dados_utilizador jogador[1];
    						data hoje[1];
    						utilizador(&jogador[0]);
    						ler_data(&hoje[0]);
    						clrscr();
    
    								/* esta parte faz com que nao haja repetiçoes de numeros no vector de numeros gerados*/
    								chave_gerada[0]= gerador();
    
    								do
    									{
    										chave_gerada[1]= gerador();
    									}while(chave_gerada[1]==chave_gerada[0]);
    
    
    								do
    									{
    										chave_gerada[2]= gerador();
    									}while((chave_gerada[2]==chave_gerada[0])||(chave_gerada[2]==chave_gerada[1]));
    
    								do
    									{
    										chave_gerada[3]= gerador();
    									}while((chave_gerada[3]==chave_gerada[0])||(chave_gerada[3]==chave_gerada[1])||(chave_gerada[3]==chave_gerada[2]));
    								clrscr();
    
    								for(i=0;i<4;i++)
    									printf("%d", chave_gerada[i]);
    
    								/* esta parte acaba aqui */
    
    									for(i=0;i<4;i++) /*este ciclo faz com que sejam inseridos 4 numeros*/
    										chave_inserida[i]=inserxao_chave();
    
    									if((chave_inserida[0]==chave_gerada[0])&&(chave_inserida[1]==chave_gerada[1])&&(chave_inserida[2]==chave_gerada[2])&&(chave_inserida[3]==chave_gerada[3]))
    											printf(" Ganhou o JOGO ");
    										else
    											{
    												for(i=0;i<4;i++)
    												  for(j=0;j<4;j++)
    													 {
    													c_correct=0;
    													c_pos_incorrect=0;
    													c_errados=0;
    
    														if((chave_gerada[i]==chave_inserida[j])&&(i==j))
    															 {
    																c_correct=c_correct+1;
    
    															 }
    
    																else
    																 {
    
    																if((chave_gerada[i]==chave_inserida[j])&&(i!=j))
    																	{
    																		c_pos_incorrect=c_pos_incorrect+1;
    
    																	}
    
    
    																	if((chave_gerada[i]!=chave_gerada[j])&&(i!=j))
    																	  {
    																		c_errados=c_errados+1;
    
    																	  }
    
    																	}
    														  }
    
    															printf("tem %d numeros corectos na posicao correcta\n", c_correct);
    															printf("tem %d numeros correctos na posicao errada\n", c_pos_incorrect);
    															printf("tem %d numeros incorrectos\n", c_errados);
    										}
    						getch();
    
    
    					}
    
    
    
    

    u que me falta fazer é u jugador tem dez tentativas pa acertar na chave gerada e dizer quantas tentativas faltam para o fim , e corrigir os ifs ( dizer quantos numeros certos na posiçao certa, quantos numeros certos na posiçao certa e os completamente errados);
     
    Última edição pelo moderador: 19 de Junho de 2007
  2. raVemjr

    raVemjr I'm cool cuz I Fold

    Parece simples...basicamente o prog devia ser isto (em c simples) um ciclo for com guarda até 10, e depois recebia input do user, guardava num vector ou variaveis, e comparava com um valor gerado ao calhas no inicio...dependendo da comparação, ia-se ou não incrementando uma variável, e se essa variável tivesse chegado ao 5 (são cinco números, né?) então tava certo, senão, dizia quantos faltava.

    Não sei quais a dif's de Turbo C para C, mas não devem ser assim tantas...quanto aos erros, desculpa mas não tenho jeito para isso...tu sabes o que fizeste, procura um debugger, analisa os erros de compilação, ou usa printf's para ver se as veriáveis etão com os valores que deviam estar nessa altura...
     
  3. Ricky2007

    Ricky2007 Power Member

    nao ha diferenças de turbo c para c... u programa que uso é que é o turbo c!

    e sao so quatro numeros.


    é tipo o mastermind so que com numeros.

    basicamente o programa é:

    temos uma chave de quatro numeros de 0 até 9 que o pc vai gerar , e vai ser armazenada num vector. vai ser pedido ao utilizador que insira uma chave pa tentar adivinhar qual é a chave gerada pelo pc. nos temos de ir dando pistas, dizer quantos numeros estao correctos na posiçao correcta e quantos numeros tao correctos na posiçao errada e quantos estao totalmente errados comparando com a chave gerada pelo pc. e o jugador tem 10 tentativas e o programa deve avizar o utilizador de quantas oportunidades tem para chegar a chave mestra( as 10 tentativas ).

    o erro que me dá é com os IF's! nao chega a contar.

    e u ke me falta fazer é por as 10 tentativas e avizar de quantas faltam para o fim do jogo ( dizer quantas oportunidades o utilizador tem mais!) e corrigir os IF's.

    agradeço toda a ajuda que me derem.

    se me quizerem ajudar pelo msn tambem agradeço( peçam o meu contacto).

    cump's

    obrigado a todos.
     

Partilhar esta Página