# Check: Stadt, Land, Fluss

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

**Wozu das Ganze?**

Dies ist ein [Check](https://dev.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 1 bis 4 selbstständig kombinieren können. Deshalb gibt es keine Hilfestellung und keine Lösung. Der Check ist freiwillig und zählt nicht für die Bonuspunkte. 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 entsprechende 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 eine entsprechende Prüfung der Kommandozeilenargumente durchführt und bei falscher Verwendung eine entsprechende Fehlermeldung ausgibt.

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

## Testen

Sie können zum Testen Ihres Programmes folgende Ausführungen und deren jeweilige Ausgabe vergleichen:
```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 zählt nicht für die Bonuspunkte. Sie sehen danach, welche Tests Ihr Programm besteht. Wie Sie `inf` installieren und sich anmelden, steht unter [Abgeben mit `inf`](https://dev.inf.zone/faq/uebung-solutions/#inf-installieren).
