Paziuch

[C] Gra w mastermind

Rekomendowane odpowiedzi

Paziuch
Napisano (edytowane)

Hej, mam w C zrobić coś takiego:
Należy napisać własny program implementujący grę Mastermind. Program sam "generuje" 4 ukryte kule na pozycjach 1,2,3,4 w 6 kolorach A,B,C,D,E,F. Gra polega na odgadnięciu 4 ukrytych kul. Gra zostanie rozwiązana, jeśli w ciągu 9 tur gracz odgadnie te kule. W każdej turze gracz wybiera 4 kule, po czym sprawdza czy trafił. Każda prawidłowo odgadnięta kula (kula o właściwym kolorze na właściwym miejscu) sygnalizowana jest znakiem X. Jeśli gracz odgadł kolor kuli, nie odgadł zaś jej lokalizacji, jest to sygnalizowane przez znak 0. Gracz nie wie, które kule są właściwe, które zaś nie.

Ogólnie wszystko prawie jest skończone ale mam 2 problemy i nie wiem czemu on występuja. Otóż za każdym razem kiedy pętla do... while się wykona zmienia się kolejność kul a wydaje mi się że nie powinna oraz co 4 wykonania pętli do...while wykonuje się ona tak jakby 2 razy jednocześnie(jak ktoś odpali ten kod i użyje kilka razy to będzie wiedział o co mi chodzi). Dodam tylko że printf("%c\n",znak); jest w celu sprawdzania działania kodu, a kod ogólnie poźniej postaram się skrócić ale jak już będzie działał jak nalęży. Z góry dziękuje za pomoc i pozdrawiam.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
  char znak[4];
   int start;
    time_t tt;
    start=time(&tt);
    srand(start);
    int i;

  for(i=1; i<=4; i++)
  {
      znak[i]='A'+rand()%6;
     printf("%c\n",znak[i]);
  }
  printf("Podaj kolejnosc 4 kolorow od A-F(WIELKIMI LITERAMI)\n");
  char kol1, kol2,kol3, kol4;
  int proby=1;
  do{
  scanf("%c",&kol1);
  scanf("%c",&kol2);
  scanf("%c",&kol3);
  scanf("%c",&kol4);

  if(kol1==znak[1])
  {
      printf(" X \n");
  }
  else if(kol1!=znak[1])
  {
      printf(" 0 \n");
  }
   if(kol2==znak[2])
  {
      printf(" X \n");
  }
  else if(kol2!=znak[2])
  {
      printf(" 0 \n");
  }
  if(kol3==znak[3])
  {
      printf(" X \n");
  }
  else if(kol3!=znak[3])
  {
      printf(" 0 \n");
  }
  if(kol4==znak[4])
  {
      printf(" X \n");
  }
  else if(kol4!=znak[4])
  {
      printf(" 0 \n");
  }
  proby++;



 if(kol1==znak[1]&&kol2==znak[2]&&kol3==znak[3]&&kol4==znak[4])
  {
      printf("wygrywasz!!!\n");
      goto koniec;

  }
  }while( proby<9);

  koniec:
      printf("Koniec gry :)");


    return 0;
}

 

Edytowane przez Paziuch

Udostępnij tego posta


Odnośnik do posta

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się