Ihr baut kleine Spiele, die man wirklich spielen kann — eines nach dem anderen. Ihr braucht nur, was ihr aus Grundlagen schon kennt:
printf (etwas ausgeben) & scanf (etwas einlesen)if / else (Entscheidungen)while- und for-Schleifenint) und RechnenSpiele brauchen Zufall (eine geheime Zahl, der Computer-Zug …). In C geht das so — diese Zeilen einfach übernehmen:
#include <stdio.h>
#include <stdlib.h> // für rand()
#include <time.h> // für time()
// EINMAL ganz am Anfang von main() — startet den Zufall:
srand(time(NULL));
// Danach: rand() % N gibt eine Zufallszahl von 0 bis N-1
int wuerfel = rand() % 6 + 1; // 1 bis 6
int zahl = rand() % 100 + 1; // 1 bis 100Merksatz: rand() % N = „eine Zufallszahl von 0 bis N−1". Mit + 1 verschiebt man den Start.
Wie in Grundlagen — alles direkt in VS Code: Datei spiel.c anlegen, dann das integrierte Terminal öffnen (Menü Terminal → Neues Terminal) und dort:
gcc spiel.c -o spiel./spielWichtig: im Terminal starten — nicht über den Ausgabe-Bereich des ▶-Knopfes. Nur im Terminal könnt ihr eure Tipps mit der Tastatur + Enter eingeben (das braucht scanf).
Der Computer denkt sich eine geheime Zahl von 1 bis 100. Ihr ratet — und das Programm sagt jedes Mal „zu klein" oder „zu groß", bis ihr sie trefft. Am Ende zeigt es, wie viele Versuche ihr gebraucht habt.
while-Schleife: solange der Tipp nicht die geheime Zahl istscanf zum Einlesen des Tippsif / else if: kleiner? größer?versuche, den ihr jede Runde um 1 erhöht#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
int geheim = rand() % 100 + 1; // fertig: geheime Zahl 1..100
int tipp = 0;
int versuche = 0;
printf("Ich denke an eine Zahl zwischen 1 und 100.\n");
// TODO: while-Schleife, solange tipp != geheim :
// 1) "Dein Tipp: " ausgeben, dann mit scanf("%d", &tipp) einlesen
// 2) versuche um 1 erhöhen
// 3) if (tipp < geheim) -> "Zu klein!" else if (tipp > geheim) -> "Zu gross!"
printf("Richtig! Du hast %d Versuche gebraucht.\n", versuche);
return 0;
}while (tipp != geheim) { ... }. Alles, was sich pro Runde wiederholt (fragen, einlesen, vergleichen), kommt zwischen die geschweiften Klammern.#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
int geheim = rand() % 100 + 1;
int tipp = 0;
int versuche = 0;
printf("Ich denke an eine Zahl zwischen 1 und 100.\n");
while (tipp != geheim) {
printf("Dein Tipp: ");
scanf("%d", &tipp);
versuche++;
if (tipp < geheim)
printf("Zu klein!\n");
else if (tipp > geheim)
printf("Zu gross!\n");
}
printf("Richtig! Du hast %d Versuche gebraucht.\n", versuche);
return 0;
}Ihr wählt Schere, Stein oder Papier (als Zahl), der Computer würfelt zufällig — und das Programm sagt, wer gewinnt.
rand() % 3 für den Computer (0, 1 oder 2)scanf für die Wahl des Spielersif / else if / else mit && (und) und || (oder)#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
int computer = rand() % 3; // 0=Schere, 1=Stein, 2=Papier
int spieler;
printf("Schere(0) Stein(1) Papier(2)? ");
scanf("%d", &spieler);
printf("Computer hatte: %d\n", computer);
// TODO:
// if (spieler == computer) -> "Unentschieden!"
// else if (Spieler gewinnt) -> "Du gewinnst!"
// else -> "Computer gewinnt!"
return 0;
}|| (oder), und jedes Paar mit && (und).if (spieler == computer) {
printf("Unentschieden!\n");
}
else if ((spieler == 0 && computer == 2) || // Schere schlägt Papier
(spieler == 1 && computer == 0) || // Stein schlägt Schere
(spieler == 2 && computer == 1)) { // Papier schlägt Stein
printf("Du gewinnst!\n");
}
else {
printf("Computer gewinnt!\n");
}(Diese drei if-Zweige kommen direkt unter die printf-Zeile mit „Computer hatte" — vor das return 0;.)
Das Programm stellt 5 Aufgaben (zufällige Multiplikation), prüft jede Antwort und zählt die Punkte. Hier kommt zum ersten Mal eine for-Schleife mit einem Zähler zusammen.
for-Schleife für die 5 Rundena und b pro Rundeif / else zum Prüfen + ein Zähler punkte#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand(time(NULL));
int punkte = 0;
// TODO: for-Schleife, 5 Runden (runde von 1 bis 5):
// - int a = rand() % 10 + 1; int b = rand() % 10 + 1;
// - "Runde X: Was ist a * b? " ausgeben und Antwort einlesen
// - if (antwort == a * b) -> "Richtig!" und punkte++
// else -> "Falsch! Richtig waere ..." (mit a*b)
printf("Du hast %d von 5 Punkten.\n", punkte);
return 0;
}for (int runde = 1; runde <= 5; runde++) { ... }. Die Variablen a, b und antwort deklariert ihr innerhalb der Schleife, damit sie jede Runde neu sind.for (int runde = 1; runde <= 5; runde++) {
int a = rand() % 10 + 1;
int b = rand() % 10 + 1;
int antwort;
printf("Runde %d: Was ist %d * %d? ", runde, a, b);
scanf("%d", &antwort);
if (antwort == a * b) {
printf("Richtig!\n");
punkte++;
} else {
printf("Falsch! Richtig waere %d.\n", a * b);
}
}Wer ein Spiel fertig hat, kann es erweitern. Such dir eine Idee aus:
Nur 7 Versuche erlauben — danach „Verloren! Die Zahl war …".
Schere-Stein-Papier in einer Schleife, bis jemand 2 Runden gewonnen hat.
Statt nur * zufällig auch + oder - fragen.
Du und der Computer würfeln je einmal — höhere Zahl gewinnt.
rand()).Wichtig: Lieber ein Spiel wirklich verstanden und selbst getippt als drei nur kopiert. 🎮