Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- #include <locale.h>
- #include <string.h>
- #include <complex.h>
- #define rozmiar 4
- void ustalanie_szyfru(char *szyfr);
- void wyswieltenie_szyfru(char *szyfr);
- void gra(char *szyfr, char *proba);
- void ustalenie_proby(char *proba);
- int main(void)
- {
- char szyfr[rozmiar];
- char proba[rozmiar+1];
- ustalanie_szyfru(szyfr);
- //wyswieltenie_szyfru(szyfr);
- printf("Z - zielony\n");
- printf("N - niebieski\n");
- printf("C - czerwony\n");
- printf("F - fioletowy\n");
- printf("B - brazowy\n");
- ustalenie_proby(proba);
- gra(szyfr, proba);
- system("PAUSE");
- }
- void ustalanie_szyfru(char* szyfr)
- {
- int a;
- int pozycja;
- srand((unsigned int)time(NULL));
- /*
- 0 - zielony (Z)
- 1 - niebieski (N)
- 2 - czerwony (C)
- 3 - fioletowy (F)
- 4 - brazowy (B)
- */
- for (pozycja = 0; pozycja < rozmiar; pozycja++)
- {
- a = rand() % 5; //losowa liczba z zakresu od 0 do 4 - kazda liczba odpowiada kolorowi
- if (a == 0)
- {
- szyfr[pozycja] = 'Z';
- }
- if (a == 1)
- {
- szyfr[pozycja] = 'N';
- }
- if (a == 2)
- {
- szyfr[pozycja] = 'C';
- }
- if (a == 3)
- {
- szyfr[pozycja] = 'F';
- }
- if (a == 4)
- {
- szyfr[pozycja] = 'B';
- }
- }
- }
- void wyswieltenie_szyfru(char *szyfr)
- {
- int pozycja;
- for (pozycja = 0; pozycja < rozmiar; pozycja++)
- {
- printf("%c", szyfr[pozycja]);
- }
- printf("\n");
- }
- void gra(char *szyfr,char *proba)
- {
- int wygrana = 0;
- int spr = 0;
- int licznik = 1;
- int licznik_temp;
- int pozycja_proba;
- int pozycja_szyfr;
- int podpowiedz_biala = 0;
- int podpowiedz_czarna = 0;
- char temp[rozmiar]; //tablica przechowujaca znaki ktorych nie mozemy liczyc w przypadku podpowiedzi bialej
- int pozycja_temp = 0;
- while (wygrana == 0)
- {
- for (pozycja_proba = 0; pozycja_proba < rozmiar; pozycja_proba++)
- {
- for (pozycja_szyfr = 0; pozycja_szyfr < rozmiar; pozycja_szyfr++)
- {
- if (proba[pozycja_proba] == szyfr[pozycja_szyfr] && pozycja_proba == pozycja_szyfr)
- {
- podpowiedz_czarna++;
- temp[pozycja_temp] = proba[pozycja_proba];
- pozycja_temp++;
- }
- }
- }
- for (pozycja_proba = 0; pozycja_proba < rozmiar; pozycja_proba++)
- {
- for (pozycja_szyfr = 0; pozycja_szyfr < rozmiar; pozycja_szyfr++)
- {
- if (proba[pozycja_proba] == szyfr[pozycja_szyfr])
- {
- if (pozycja_proba == pozycja_szyfr)
- {
- break;
- }
- for (licznik_temp = 0; licznik_temp < pozycja_temp; licznik_temp++)
- {
- if (proba[pozycja_proba] == temp[licznik_temp])
- {
- spr = 1;
- break;
- }
- }
- if (spr == 1)
- {
- spr = 0;
- break;
- }
- podpowiedz_biala++;
- temp[pozycja_temp] = proba[pozycja_proba];
- pozycja_temp++;
- }
- }
- }
- //czyscimy tablice temp
- pozycja_temp--;
- for (pozycja_temp; pozycja_temp > 0; pozycja_temp--)
- {
- temp[pozycja_temp] = '-';
- }
- //wyswietlenie podpowiedzi
- printf("czarne: %d\n", podpowiedz_czarna);
- printf("biale: %d\n", podpowiedz_biala);
- if (podpowiedz_czarna == rozmiar) //sprawdzam czy wygrana
- {
- wygrana = 1;
- }
- else // w innym wypadku ustalenie nowej proby
- {
- licznik++;
- printf("\n");
- ustalenie_proby(proba);
- }
- //wyzerowanie podpowiedzi
- podpowiedz_biala = 0;
- podpowiedz_czarna = 0;
- }
- printf("Wygrales w %d probach!\n", licznik);
- }
- void ustalenie_proby(char *proba)
- {
- printf("Podaj szyfr (4 litery):");
- scanf("%s", proba);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement