Untitled
unknown
plain_text
a year ago
2.5 kB
4
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