Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- void draw(int);
- void draw_wort(char[], char[]);
- int wort_gefunden(char[], char[]);
- char wort[] = "test";
- int fehler = 0;
- const int MAX_FEHLER = 9;
- int main(void)
- {
- printf("Gebe das Wort ein, welches er erraten soll, es duerfen aber nur kleinbuchstaben sein.\n");
- scanf("%s", wort);
- // hiermit holen wir uns die ganze länge des Suchworts.
- int wortLaenge = strlen(wort);
- // Hiermit merken wir uns welche Buchstaben wir bereits gefunden haben
- char gefundene[wortLaenge];
- int gefundenAnzahl = 0;
- int gewonnen = 0;
- do
- {
- // Das wird die Eingabe von einem Wort (Buchstaben) beinhalten.
- char eingabe[1];
- scanf("%s", eingabe);
- // Wir haben noch kein Buchstaben gefunden. -> ist erst der Anfang von der For-Schleife
- int gefunden = 0;
- // Wir prüfen jeden einzelnen Buchstaben des Suchworts mit dem gerade eingegebenen Buchstaben.
- for (int i = 0; i < wortLaenge; i++)
- {
- // Wenn wir einen Treffer haben, können wir uns den Buchstaben merken
- // und vorzeitig abbrechen.
- if (wort[i] == eingabe[0])
- {
- gefunden = 1;
- gefundene[gefundenAnzahl] = eingabe[0];
- gefundenAnzahl++;
- break;
- }
- }
- // Wenn kein Buchstabe gefunden wurde, wurde ein Fehler gemacht.
- if (gefunden == 0)
- {
- fehler++;
- }
- // Zeichnen vom Galgenmännchen
- draw(fehler);
- draw_wort(wort, gefundene);
- gewonnen = wort_gefunden(wort, gefundene);
- // Solange spielen bis man entweder verloren oder gewonnen hat.
- } while ((fehler < MAX_FEHLER) && (gewonnen == 0));
- if (gewonnen != 0)
- {
- printf("Du hast Gewonnen!");
- }
- else
- {
- printf("Loser!");
- }
- return 0;
- }
- void draw(int fehlerAnzahl)
- {
- char fehler_0[] =
- "\n\n\n\n\n\n\n";
- char fehler_1[] =
- "\n|\n|\n|\n|\n|\n|\n";
- char fehler_2[] =
- " _________\n|\n|\n|\n|\n|\n|\n";
- char fehler_3[] =
- " _________\n| |\n| \n| \n| \n| \n| \n";
- char fehler_4[] =
- " _________\n| | \n| 0 \n| \n| \n| \n| \n";
- char fehler_5[] =
- " _________ \n| | \n| 0 \n| | \n| \n| \n| \n";
- char fehler_6[] =
- " _________\n| | \n| 0 \n| /| \n| \n| \n| \n";
- char fehler_7[] =
- " _________\n| | \n| 0 \n| /|\\ \n| \n| \n| \n";
- char fehler_8[] =
- " _________\n| | \n| 0 \n| /|\\ \n| / \n| \n| \n";
- char fehler_9[] =
- " _________\n| | \n| 0 \n| /|\\ \n| / \\ \n| \n| \n";
- char *ergebnis;
- switch(fehlerAnzahl)
- {
- case 0: ergebnis = fehler_0; break;
- case 1: ergebnis = fehler_1; break;
- case 2: ergebnis = fehler_2; break;
- case 3: ergebnis = fehler_3; break;
- case 4: ergebnis = fehler_4; break;
- case 5: ergebnis = fehler_5; break;
- case 6: ergebnis = fehler_6; break;
- case 7: ergebnis = fehler_7; break;
- case 8: ergebnis = fehler_8; break;
- case 9: ergebnis = fehler_9; break;
- }
- printf("═══════════════════════════════\n%s\n═══════════════════════════════\n", ergebnis);
- }
- int wort_gefunden(char wort[], char gefundeneBuchstaben[])
- {
- int alle_gefunden = 0;
- // Prüfen ob alle buchstaben aus dem Suchwort gefunden wurden.
- // alle_gefunden muss die Länge des Suchworts haben.
- for (int j = 0; j < strlen(gefundeneBuchstaben); j++)
- {
- for (int i = 0; i < strlen(wort); i++)
- {
- if (wort[i] == gefundeneBuchstaben[j])
- {
- alle_gefunden++;
- }
- }
- }
- if (alle_gefunden == strlen(wort))
- {
- return 1;
- }
- return 0;
- }
- void draw_wort(char wort[], char gefundeneBuchstaben[])
- {
- // Alle Buchstaben ablaufen und jeden buchstaben "zeichen" wenn er gefunden wurde.
- // Ansonsten mit einem "_" verstecken.
- for (int i = 0; i < strlen(wort); i++)
- {
- char buchstabe;
- int gefunden = 0;
- for (int j = 0; j < strlen(gefundeneBuchstaben); j++)
- {
- if (wort[i] == gefundeneBuchstaben[j])
- {
- gefunden = 1;
- }
- }
- if (gefunden == 0) buchstabe = '_';
- else buchstabe = wort[i];
- printf("%c", buchstabe);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement