Krolyxon
Commit 5089ce0

Branches

Refs →

trossrcmain.c

150 lines · 3.0 KB · C

1#include "sort.h"
2#include "utils.h"
3#include <stdio.h>
4#include <stdlib.h>
5#include <time.h>
6// https://texteditor.com/multiline-text-art/
7const int EASY_SCORE_DECREMENT = 10;
8const int MEDIUM_SCORE_DECREMENT = 20;
9const int LOWER = 1;
10const int UPPER = 3;
11
12enum Difficulty {
13 Easy,
14 Medium,
15 Hard,
16};
17
18int list[35];
19
20int score = 100;
21int level = 1;
22int size = 5;
23
24void decrement_score(enum Difficulty diff);
25void level_up();
26void level_down();
27int getrand();
28void getarr(int size);
29enum Difficulty get_difficulty();
30
31int main(int argc, char *argv[]) {
32 // Get a random number to run a random algorithm
33 srand(time(0));
34 int guess;
35
36 printf(COLOR_RED);
37 print_ascii("./assets/banner.txt");
38 enum Difficulty diff = get_difficulty();
39
40 while (level > 0 && level <= 10) {
41 int random_number = getrand();
42 printf(BAR);
43 switch (random_number) {
44 case 1:
45 getarr(size);
46 bubblesort(list, size);
47 break;
48 case 2:
49 getarr(size);
50 insertionsort(list, size);
51 break;
52 case 3:
53 getarr(size);
54 selectionsort(list, size);
55 break;
56 // case 4: radixsort(list); break;
57 default:
58 break;
59 }
60
61 printf(BAR);
62 printf("1. BubbleSort\n");
63 printf("2. InsertionSort\n");
64 printf("3. SelectionSort\n");
65 printf("4. RadixSort\n");
66 printf("Enter your guess: ");
67 scanf("%d", &guess);
68 if (guess == random_number) {
69 printf("Congratulations!!! Your answer was right!!\n");
70 score += 10;
71 level_up();
72 } else {
73 decrement_score(diff);
74 level_down();
75 }
76 printf("Score: %d\n", score);
77 }
78 return 0;
79}
80
81int getrand() {
82 return (rand() % (UPPER - LOWER + 1)) + LOWER;
83}
84
85void decrement_score(enum Difficulty diff) {
86 if (diff == Easy) {
87 printf("Wrong Answer!! The score will be decremented by 10\n");
88 score -= EASY_SCORE_DECREMENT;
89 } else if (diff == Medium) {
90 printf("Wrong Answer!! The score will be decremented by 20\n");
91 score -= MEDIUM_SCORE_DECREMENT;
92 } else {
93 printf("Wrong Answer!! The score will be reseted to 0\n");
94 score = 0;
95 }
96}
97
98enum Difficulty get_difficulty() {
99 int choice;
100 enum Difficulty difficulty;
101 printf(COLOR_CYAN " CHOOSE DIFFICULTY\n" COLOR_OFF);
102 printf(COLOR_RED BAR COLOR_OFF);
103 printf("1. Easy\n");
104 printf("2. Medium\n");
105 printf("3. Hard\n");
106 printf(BAR);
107 printf("Enter difficulty: ");
108 scanf("%d", &choice);
109 switch (choice) {
110 case 1:
111 difficulty = Easy;
112 break;
113 case 2:
114 difficulty = Medium;
115 break;
116 case 3:
117 difficulty = Hard;
118 break;
119 }
120 return difficulty;
121}
122
123void level_up() {
124 if (level == 10) {
125 print_ascii("./assets/winner.txt");
126 printf("Congratulations!! You WON the game");
127 exit(1);
128 }
129 level++;
130 size += 3;
131 printf(COLOR_BOLD COLOR_RED
132 "You have been leveled up to Level %d\n" COLOR_OFF,
133 level);
134}
135
136void level_down() {
137 if (level >= 2) {
138 level--;
139 size -= 3;
140 } else {
141 printf("Too many wrong answers!!, You Lose!");
142 exit(1);
143 }
144}
145
146void getarr(int size) {
147 for (int i = 0; i < size; i++) {
148 list[i] = rand() % 100;
149 }
150}