diff --git a/src/Ramen_Physik.c b/src/Ramen_Physik.c new file mode 100644 index 0000000..f06ea31 --- /dev/null +++ b/src/Ramen_Physik.c @@ -0,0 +1,391 @@ +/* Ramen_Physik.c +Hier werden Physikaufgaben gelöst mit einem Spiel als Pause + +Autor: Jana Nieblas, Debora Semmler +Firma: FHGR +Version 1.0 +Datum 11.12.2024 +Aenderungen: +V 1.0 11.12.2024 Erste Version +*/ + +#include +#include +#include +#include + + +//Definitionen +#define max_anzahl_fehler 3 + +// Abfrage Antworten +int antwort (int loesung, int *falsche_antwort){ + + while (1) + { + int eingabe; + scanf("%d", &eingabe); + + if (eingabe == loesung) + { + printf("Richtige Antwort \n"); + return 0; + } + + else { + printf("Falsche antwort \n"); + *falsche_antwort += 1; + if (*falsche_antwort >= max_anzahl_fehler) { + printf("Zu viele ungültige Eingaben. Programm beendet.\n"); + return 20; + } + } + } +} + +// Zufällige Ausgabe der Fragen +int zufaellig(int maximum){ + int n = rand() % maximum; + return n; +} + +//einfache Fragen +int einfache_fragen(int *falsche_antwort){ + + //Variabeln + const int anzahl_fragen = 10; + int fragen[3] = {-1, -1,-1}; + int return_code = 0; + int x = 0; + + //abfragen der verwendeten Fragen + for (int i = 0; i < 3; i++) + { + + while (1) + { + x = zufaellig(anzahl_fragen); + + if (x != fragen[0] && x != fragen[1] && x != fragen[2]) + { + break; + } + + } + + fragen[i]=x; + + //Fragen + switch (x) + { + case 0 : + printf("Frage 1 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 1 : + printf("Frage 2 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 2 : + printf("Frage 3 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 3 : + printf("Frage 4 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 4 : + printf("Frage 5 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 5 : + printf("Frage 6 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 6 : + printf("Frage 7 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 7 : + printf("Frage 8 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 8 : + printf("Frage 9 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 9 : + printf("Frage 10 \n"); + return_code = antwort(2, falsche_antwort); + break; + + default: + break; + } + + if (return_code == 20) + { + return 20; + } + + } +} + +//mittlere Fragen +int mittlere_fragen(int *falsche_antwort){ + + //Variabeln + const int anzahl_fragen = 10; + int fragen[3] = {-1, -1,-1}; + int return_code = 0; + int x = 0; + + //abfragen verwendeter Fragen + for (int i = 0; i < 3; i++) + { + + while (1) + { + x = zufaellig(anzahl_fragen); + + if (x != fragen[0] && x != fragen[1] && x != fragen[2]) + { + break; + } + + } + + fragen[i]=x; + + //Fragen + switch (x) + { + case 0 : + printf("Frage 1 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 1 : + printf("Frage 2 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 2 : + printf("Frage 3 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 3 : + printf("Frage 4 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 4 : + printf("Frage 5 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 5 : + printf("Frage 6 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 6 : + printf("Frage 7 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 7 : + printf("Frage 8 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 8 : + printf("Frage 9 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 9 : + printf("Frage 10 \n"); + return_code = antwort(2, falsche_antwort); + break; + + default: + break; + } + + if (return_code == 20) + { + return 20; + } + + } +} + +//schwere Fragen +int schwere_fragen(int *falsche_antwort){ + + //Variabeln + const int anzahl_fragen = 10; + int fragen[3] = {-1, -1,-1}; + int return_code = 0; + int x = 0; + + //abfragen verwendeter Fragen + for (int i = 0; i < 3; i++) + { + + while (1) + { + x = zufaellig(anzahl_fragen); + + if (x != fragen[0] && x != fragen[1] && x != fragen[2]) + { + break; + } + + } + + fragen[i]=x; + + //Fragen + switch (x) + { + case 0 : + printf("Frage 1 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 1 : + printf("Frage 2 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 2 : + printf("Frage 3 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 3 : + printf("Frage 4 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 4 : + printf("Frage 5 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 5 : + printf("Frage 6 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 6 : + printf("Frage 7 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 7 : + printf("Frage 8 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 8 : + printf("Frage 9 \n"); + return_code = antwort(2, falsche_antwort); + break; + + case 9 : + printf("Frage 10 \n"); + return_code = antwort(2, falsche_antwort); + break; + + default: + break; + } + + if (return_code == 20) + { + return 20; + } + + } +} + + +// Hauptunktionen +int Ramen_Physik(){ + + // Umlaute + system("chcp 65001 >null"); + + // Zufallsgenerator initialisieren + srand(time(NULL)); + + //Variabeln + char eingabe = '0'; + int return_code = 0; + int falsche_antwort = 0; + + while (1){ + //löschen der Konsole + printf("\e[1;1H\e[2J"); + + //Auswahl der Schwierigkeitsstufe + printf("1 \t einfache Fragen \n"); + printf("2 \t mittlere Fragen \n"); + printf("3 \t schwere Fragen \n"); + printf("q \t zurück zum Hauptmenu \n"); + + scanf("%c", &eingabe); + + //Abfrage der Eingabe + switch (eingabe){ + case '1':{ + printf("\neinfache Fragen\n"); + return_code = einfache_fragen(&falsche_antwort); + break; + } + case '2':{ + printf("\nmittlere Fragen\n"); + return_code = mittlere_fragen(&falsche_antwort); + break; + } + case '3':{ + printf("\nschwere Fragen\n"); + return_code = schwere_fragen(&falsche_antwort); + break; + } + + case 'q':{ + printf("\nProgramm beendet \n"); + return 10; + break; + } + + case '\n':{ + break; + + } + default: { + printf("Zu viele ungültige Eingaben. Programm beendet.\n"); + return 20; + } + } + + if (return_code == 20){ + return 20; + } + } + return 0; +} \ No newline at end of file diff --git a/src/Ramen_Physik.h b/src/Ramen_Physik.h new file mode 100644 index 0000000..e990e29 --- /dev/null +++ b/src/Ramen_Physik.h @@ -0,0 +1,21 @@ +/* Physikhelper_Physik.h +Hier werden Physikaufgaben gelöst mit einem Spiel als Pause + +Autor: Jana Nieblas, Debora Semmler +Firma: FHGR +Version 1.0 +Datum 09.12.2024 +Aenderungen: +V 1.0 09.12.2024 Erste Version +*/ + +#ifndef _FILE_NAME_H_ +#define _FILE_NAME_H_ + + + + //extern float var1,var2; + extern int Ramen_Physik(); + + +#endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 33d4992..f4d4b2d 100644 --- a/src/main.c +++ b/src/main.c @@ -13,7 +13,8 @@ #endif // import sub programme -#include "pipes_test.h" +// #include "pipes_test.h" +#include "Ramen_Physik.h" #include "test_prog.h" /* @@ -184,7 +185,7 @@ void print_menu(int terminal_width, int terminal_height, int line){ int spaces = (terminal_width - 41) / 2; print_line("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓", spaces, (0 <= line && line < 1) ? ";31": ";37"); - print_line("┃ Programm 1 ┃", spaces, (0 <= line && line < 1) ? ";31": ";37"); + print_line("┃ Ramen Physik ┃", spaces, (0 <= line && line < 1) ? ";31": ";37"); print_line("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫", spaces, (0 <= line && line < 2) ? ";31": ";37"); print_line("┃ Programm 2 ┃", spaces, (1 <= line && line < 2) ? ";31": ";37"); print_line("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫", spaces, (1 <= line && line < 3) ? ";31": ";37"); @@ -247,7 +248,7 @@ void run_programm(int programm, int width, int height, bool *used){ clear_terminal(); int return_code = 0; switch (programm) { - case 0: return_code = test_gruppe_programmname(); break; + case 0: return_code = Ramen_Physik(); break; case 1: return_code = test_gruppe_programmname(); break; case 2: return_code = test_gruppe_programmname(); break; case 3: return_code = test_gruppe_programmname(); break; @@ -327,7 +328,7 @@ int main(int argc, char **argv){ case 'G': line = 8; break; case '?': print_help(); break; - case 'p': pipes(); break; + // case 'p': pipes(); break; case 'q': run = false; break; @@ -335,8 +336,10 @@ int main(int argc, char **argv){ case 'B': open(); break; case 'C': open(); break; case 'D': open(); break; + case -32: open(); break; case '\n': run_programm(line, width, height, used); break; + case 13 : run_programm(line, width, height, used); break; case '1': run_programm(0, width, height, used); break; case '2': run_programm(1, width, height, used); break; case '3': run_programm(2, width, height, used); break;