#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>

int main(int argc, char *argv[])
{

	/* -------- Zufallszahlen */
	srand(time(NULL));
	int aufgabeAuswahl = rand() % 4;

	/* -------- Aufgaben */
	char gesuchtesWort[100];
	char raetselWort[100];

	/* -------- Zufaellige Auswahl einer Aufgabe */
	switch (aufgabeAuswahl) {
	case 0:
		strcpy(gesuchtesWort, "maus");
		strcpy(raetselWort, "____"); break;
	case 1:
		strcpy(gesuchtesWort, "tastatur");
		strcpy(raetselWort, "_______"); break;
	case 2:
		strcpy(gesuchtesWort, "flachbettscanner");
		strcpy(raetselWort, "________________"); break;
	case 3:
		strcpy(gesuchtesWort, "monitor");
		strcpy(raetselWort, "_______"); break;
	}

	/* -------- Zaehler */
	int anzahlFehler = 0;
	int laenge = strlen(gesuchtesWort);
	int anzahlGesucht = laenge;
	int anzahlGefunden = 0;

	/* -------- Eingabe */
	char eingabeBuchstabe;

	printf("\n\n\tG A L G E N R A T E N\n");

	while (anzahlGesucht > 0) {
		int gefunden = 0;
		printf("\n%s\n", raetselWort);
		printf("Anzahl Fehler: %i\n", anzahlFehler);
		printf("Einen Buchstaben eingeben: ");

		/* -------- Eingabe */
		eingabeBuchstabe = getchar(); while (!feof(stdin) && !ferror(stdin) && getchar() != '\n');

		/* -------- Buchstaben mit Aufgabe vergleichen */
		for (int i = 0; i < laenge; i++)
		{
			if (raetselWort[i] == '_' && gesuchtesWort[i] == tolower(eingabeBuchstabe))
			{
				raetselWort[i] = gesuchtesWort[i]; /* Unterstrich durch Eingabe ersetzen */
				printf("\tRichtig!\n");
				anzahlGesucht--;
				anzahlGefunden++;		
				gefunden++;
			}
		}

		if (anzahlGesucht == 0) puts("Loesung:"), puts(raetselWort);
		if (gefunden) continue;		

		if (++anzahlFehler >= 10)
		{
			printf("\nDu wurdest gehaengt!\n"); break;
		}

	}

	return 0;
}
