# Check: Stadt, Land, Fluss

Quelle: https://inf.zone/exercises/04/stadt-land-fluss/

**Wozu das Ganze?**

Dies ist ein [Check](https://inf.zone/faq/uebung-checks/), also eine Lernzielkontrolle: Er bringt nichts Neues, sondern prüft, ob Sie Schleifen, Bedingungen, Kommandozeilenargumente und die Umwandlung von Zahlen in Buchstaben aus den Übungen 0 bis 3 selbstständig kombinieren können. Deshalb gibt es keine Hilfestellung und keine Lösung. Der Check ist freiwillig und spielt für die [Joker-Regel](https://inf.zone/extras/exam/#joker-regel) keine Rolle. Bearbeiten Sie den Check erst, wenn Sie die vorangegangenen Übungen bearbeitet haben; sonst holen Sie zuerst diese nach.

Bei dem Spiel [Stadt, Land, Fluss](https://de.wikipedia.org/wiki/Stadt,_Land,_Fluss) muss vor jeder Runde ein Buchstabe bestimmt werden. Bei der gängigsten Methode geht ein Spieler das Alphabet im Kopf durch, bis ein zweiter Spieler „Stopp“ ruft. Es gibt aber auch viele andere Möglichkeiten. Um dem Spieler, der das Alphabet durchgeht, weniger Manipulationsmöglichkeit zu geben, könnten stattdessen z. B. auch zwei Spieler im Kopf von eins an aufwärts zählen. Ruft ein dritter Spieler „Stopp“, werden beide Zahlen zusammengerechnet. Die resultierende Zahl könnte dann als eine Position im Alphabet interpretiert und in einen Buchstaben umgewandelt werden.

Erstellen Sie ein Programm, das die oben beschriebene Funktionalität bereitstellt. Um die Verwendung flexibler zu gestalten, soll Ihr Programm die Zahlen von 1 bis 8 Spielern verarbeiten können, also eine bis acht Zahlen. Die Zahlen sollen dazu einfach als Kommandozeilenargumente bereitgestellt werden. Bei Ausführung des Programms soll der Buchstabe als Großbuchstabe ausgegeben werden. Ist die Summe größer als 26, geht es wieder bei A los: 27 ergibt A, 28 ergibt B usw. Achten Sie darauf, dass Ihr Programm die Kommandozeilenargumente prüft und bei falscher Verwendung eine Fehlermeldung ausgibt.

Implementieren Sie das Programm in C in einer Datei namens `stadtlandfluss.c` in einem Ordner namens `stadtlandfluss`.

## Testen

Vergleichen Sie zum Testen die Ausgabe Ihres Programms bei folgenden Aufrufen:
```plaintext
./stadtlandfluss 1
A
```

```plaintext
./stadtlandfluss 27
A
```

```plaintext
./stadtlandfluss 10 17
A
```

```plaintext
./stadtlandfluss 1 1 1
C
```

```plaintext
./stadtlandfluss 1 1 1 1 1 1 1 1
H
```

```plaintext
./stadtlandfluss 1 -1
[Ausgabe Ihrer Fehlermeldung bei falschem Inhalt der Argumente, z.B. "ERROR: Verwendung nur mit positiven ganzen Zahlen."]
```

```plaintext
./stadtlandfluss A B
[Ausgabe Ihrer Fehlermeldung bei falschem Inhalt der Argumente, z.B. "ERROR: Verwendung nur mit positiven ganzen Zahlen."]
```

```plaintext
./stadtlandfluss
[Ausgabe Ihrer Fehlermeldung bei falscher Anzahl der Argumente, z.B. "ERROR: Verwendung ausgelegt auf 1-8 Spieler. Übergeben Sie bitte mindestens eine Zahl, höchstens jedoch acht Zahlen."]
```

```plaintext
./stadtlandfluss 1 2 3 4 5 6 7 8 9
[Ausgabe Ihrer Fehlermeldung bei falscher Anzahl der Argumente, z.B. "ERROR: Verwendung ausgelegt auf 1-8 Spieler. Übergeben Sie bitte mindestens eine Zahl, höchstens jedoch acht Zahlen."]
```

### Korrektheit

Führen Sie in Ihrem Terminal den folgenden Befehl aus, um die Korrektheit Ihrer Arbeit zu überprüfen:

```bash
check50 -l inf-zone/exercises/2026/stadtlandfluss/sum
```

## Abgeben

Geben Sie im Ordner `stadtlandfluss` ab:

```bash
inf upload stadtlandfluss/sum
```

Die Abgabe ist freiwillig und spielt für die [Joker-Regel](https://inf.zone/extras/exam/#joker-regel) keine Rolle. Sie sehen danach, welche Tests Ihr Programm besteht, und können so oft abgeben, wie Sie wollen. Wie Sie sich anmelden und was zu tun ist, wenn `inf` fehlt, steht unter [Abgeben mit `inf`](https://inf.zone/faq/uebung-solutions/#inf-einrichtung).
