Untitled
unknown
plain_text
4 months ago
2.5 kB
3
Indexable
/* To run this piece of shit, first you need to compile this (in the terminal): `gcc -O0 -Wall -std=c17 -ggdb algorytm_losowanka.c -o algorytm_losowanka` then run it: `./algorytm_losowanka` */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_WORD_LEN 10 void game(char *wordd) { srand(time(NULL)); int randNum, userNum = -1; int userTokens = 5; int winTokens = 2, failTokens = -1; int finishWinUserTokens = 10, finishFailUserTokens = 0; while (1) { // printf("time: %ld\n", time(NULL)); // random number seed is timestamp randNum = rand() % 3 + 1; printf("insert kremówka: "); // standard input - ignoring user mistakes scanf("%d", &userNum); // standard input - ignoring user mistakes // fancy input - handling user mistakes // int retries = 0; // while (userNum < 1 || 3 < userNum) // { // retries == 0 ? printf("insert kremówka: ") : printf("invalid number, insert kremówka again: "); // scanf("%d", &userNum); // retries++; // } // retries = 0; if (randNum == userNum) { userTokens += winTokens; printf("win! current tokens: %d\n", userTokens); } else { userTokens += failTokens; printf("fail! PC number was %d\tcurrent tokens: %d\n", randNum, userTokens); } if (userTokens >= finishWinUserTokens) { sprintf(wordd, "win!"); return; } else if (userTokens == finishFailUserTokens) { sprintf(wordd, "fail!"); return; } userNum = -1; // for user mistakes handler } } int main() { char wordd[MAX_WORD_LEN + 1]; game(wordd); printf("Game result: %s\n", wordd); } /* w zasadzie wszystko dzieje się w funkcji game - ustawiamy wszystkie stałe zgodnie z warunkami zadania - w nieskończonej pętli losujemy liczbę i porównujemy - jeśli trafiona -> przyznaj nagrodę - jeśli nie trafiona -> przyznaj karę - sprawdź czy to nie koniec (tokenów lub wygrana) i jeśli koniec to zwróć wynik psudokod: u_tokens = 5 while () // znaczy że nieskończona pętla r_num = losuj_liczbe() u_num = liczba_użyszkodnika() // do skutku aż poda poprawną if r_num == u_num u_tokens += 2 else u_tokens -= 1 if u_tokens >= 10 return "win" if u_tokens == 0 return "fail" */
Editor is loading...
Leave a Comment