|
|
//1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "Mathe.h"
//3
int generiereZufallszahl(int min, int max);
//4
char generiereZufallsOperator();
//5
int addiere(int zahl1, int zahl2);
//6
int subtrahiere(int zahl1, int zahl2);
//7
int multipliziere(int zahl1, int zahl2); //8
int dividiere(int zahl1, int zahl2); //9
int berechneErgebnis(int zahl1, int zahl2, char operator); //10
void spieleRunde(int schwierigkeitsgrad); //11
void zeigeAnleitung(); //12
void zeigeHighscore(int punkte); //13
int holeSpielerAntwort();
//14
void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte);
//15
void zeigeRundenEnde(int punkte);
//16
void zeigeAuswahl(const char* text);
//17
void initialisiereZufallsgenerator() { srand(time(NULL)); }
//18
int generiereZufallszahl(int min, int max) { return min + (int)((double)rand() / (RAND_MAX + 1) * (max - min + 1)); } //19
char generiereZufallsOperator() { char operatoren[] = {'+', '-', '*', '/'}; int index = rand() % 4; return operatoren[index]; } //22
void zeigeAnleitung() { printf("\n=== Anleitung ===\n"); printf("Beantworte die mathematischen Aufgaben, um Punkte zu sammeln.\n"); printf("Du kannst zwischen verschiedenen Schwierigkeitsgraden wählen.\n"); printf("Versuche so viele Aufgaben wie möglich korrekt zu lösen!\n"); }
//23
void zeigeHighscore(int punkte) { printf("\n=== Highscore ===\n"); printf("Dein aktueller Highscore ist: %d Punkte\n", punkte); }
//25
void bewerteAntwort(int spielerAntwort, int ergebnis, int* punkte) { if (spielerAntwort == ergebnis) { printf("Richtig! Du erhältst einen Punkt.\n"); (*punkte)++; } else { printf("Falsch! Die richtige Antwort ist %d\n", ergebnis); } }
//26
void zeigeRundenEnde(int punkte) { printf("Runde beendet. Du hast insgesamt %d Punkte erreicht.\n", punkte); } //27
int addiere(int zahl1, int zahl2) { return zahl1 + zahl2; } //28
int subtrahiere(int zahl1, int zahl2) { return zahl1 - zahl2; } //29
int multipliziere(int zahl1, int zahl2) { return zahl1 * zahl2; } //30
int dividiere(int zahl1, int zahl2) { if (zahl2 != 0) { return zahl1 / zahl2; } else { printf("Fehler: Division durch Null vermieden.\n"); return 0; } }
//31
void zeigeAuswahl(const char* text) { printf("%s\n", text); } //24
int holeSpielerAntwort() { int spielerAntwort; zeigeAuswahl("Deine Antwort: "); scanf("%d", &spielerAntwort); return spielerAntwort; } int berechneErgebnis(int zahl1, int zahl2, char operator) { switch (operator) { case '+': return addiere(zahl1, zahl2); case '-': return subtrahiere(zahl1, zahl2); case '*': return multipliziere(zahl1, zahl2); case '/': return dividiere(zahl1, zahl2); default: return 0; } }
//21
void spieleRunde(int schwierigkeitsgrad) { int punkte = 0; int anzahlAufgaben = 5; zeigeAuswahl("Berechne die folgenden Aufgaben:");
for (int i = 0; i < anzahlAufgaben; i++) { int zahl1 = generiereZufallszahl(1 * schwierigkeitsgrad, 10 * schwierigkeitsgrad); int zahl2 = generiereZufallszahl(1 * schwierigkeitsgrad, 10 * schwierigkeitsgrad); char operator = generiereZufallsOperator(); if (operator == '/' && zahl2 == 0) { zahl2 = generiereZufallszahl(1 * schwierigkeitsgrad, 10 * schwierigkeitsgrad); } int ergebnis = berechneErgebnis(zahl1, zahl2, operator); printf("Aufgabe %d: %d %c %d\n", i + 1, zahl1, operator, zahl2); int spielerAntwort = holeSpielerAntwort(); bewerteAntwort(spielerAntwort, ergebnis, &punkte); }
zeigeRundenEnde(punkte); }
int mainx() { srand(time(NULL));
int weiterSpielen = 1; int gesamtPunkte = 0;
zeigeAnleitung();
while (weiterSpielen) { int schwierigkeitsgrad; printf("\nWähle einen Schwierigkeitsgrad (1 für einfach, 2 für mittel, 3 für schwer): "); scanf("%d", &schwierigkeitsgrad);
spieleRunde(schwierigkeitsgrad); zeigeHighscore(gesamtPunkte);
printf("\nMöchtest du eine weitere Runde spielen? (1 für Ja, 0 für Nein): "); scanf("%d", &weiterSpielen); }
printf("Vielen Dank fürs Spielen! Auf Wiedersehen.\n");
return 0; }
|