Krolyxon
Commit f8fc421

Branches

Refs →

trossrcmain.c

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