Courtesy of pxhere

Problemstellung

Aufgabe 1: Grundprinzip Roulette

Erstelle in R die Zufallsziehung, die beim Roulette stattfindet. Probiere die Funktionalität des Befehls aus, indem du eine Schleife erstellst, bei der du 50 Roulette-Spiele simulierst. Versuche nun mit einem Befehl zu ermitteln, wie viel du bei diesen 50 Spielen gewonnen hättest, wenn du jedes Mal auf die 9 gesetzt hättest.

Aufgabe 2: Implementierung verschiedener Wettmöglichkeiten

Die Funktion, die du in Aufgabe 1 erstellt hast, ist aktuell nur auf die Überprüfung einer Zahl spezialisiert. Für jede andere Wette müsstest du neue Funktionen schreiben. Schreibe die Funktion zur Ermittlung des Gewinns so um, dass alle einzelnen Zahlen in dieser einen Funktion erfasst sind. Implementiere dabei auch die Wetten RED, BLACK, ODD, EVEN sowie das erste, zweite und letzte Drittel. Erstelle erneut eine Schleife mit 50 Spielen, bei der du jeweils Zufallsziehung und Gewinn abspeicherst.

Aufgabe 3: Spiele, bis du X Euro gewonnen hast.

Hast du dich schon mal gefragt, wie lang es dauert, bis du einen bestimmten Betrag beim Roulette gewonnen hast? Lege dich nun darauf fest, worauf du wie viel setzen möchtest und wie viel Geld du am Ende gewonnen haben möchtest. Schreibe nun eine Funktion, die so lange läuft, bis du das gewünschte Geld gewonnen hast. Achtung: Die Funktion zählt die Durchläufe nicht von selbst mit. Sorge dafür, dass eine Variable deiner Schleife die Durchläufe zählt. Wie lang hat es bis zu deinem gewünschten Gewinn gedauert?

Tipp: Falls du “zu viel” gewinnen möchtest, könnte die Schleife sehr lange durchlaufen. Stoppe die Schleife dann in deiner Konsole manuell und probier es noch einmal mit einer anderen Wette oder baue eine weitere Bedingung ein, die die Durchläufe begrenzt.

Beispiel: Ich setze jede Runde 10 Euro auf “ROT” und möchte am Ende einen Gewinn von 50 Euro haben. Das funktioniert zwar nicht immer, aber mit etwas Glück hält die Schleife irgendwann an und ich gewinne 50 Euro. Sofern ich keine 50 Euro gewinne, möchte ich nach 500 Durchgängen aufhören.

Aufgabe 4: Funktionen

In R gibt es die Möglichkeit, eigene Funktionen mit dem Befehl function zu erstellen. Nutze dies nun dafür, eine Roulette-Funktion zu erstellen. Diese Funktion sollte es dir dann ganz einfach ermöglichen, nur durch Angabe von Einsatz und Wette deinen Gewinn zu ermitteln.

Die Funktion sollte in R folgendermaßen aussehen:

Roulette(Einsatz, Wette)

Verschönere die Ausgabe mit ein paar Nachrichten und Pausen, um das Spiel etwas authentischer zu gestalten. Nutze dafür den message-Befehl und den Sys.sleep-Befehl.

Die Nachrichten sollten mindestens folgende Funktionen erfüllen:

  • Verkünde, dass die Kugel startet
  • Verkünde nach bestimmter Zeit, dass keine Wetten mehr möglich sind
  • Welche Zahl kam heraus?
  • Welche Bedeutung hat das für meine Wette?

Wenn du das geschafft hast, probiere dich an einer Funktion, bei der man zusätzlich dazu angeben kann, wie viele Runden man mit gleichbleibender Wette und gleichem Einsatz spielen möchte. Passe das Spiel dementsprechend mit abgeänderten Nachrichten und Pausen an.

Die Funktion sollte letztlich so funktionieren:

Roulette_2(Einsatz, Wette, Runden)

Die Nachrichten im Output sollten hierbei folgende Fragen beantworten:

  • Welche Runde wird gerade gespielt?
  • Welche Zahl kam heraus?
  • Was für ein Resultat ergab diese Runde für mich?
  • Wie sieht mein Gesamtergebnis zu diesem Zeitpunkt aus?
  • Zum Schluss: Wie kann man die Resultate zusammenfassen? Gesamtgewinn?
  • Je nach Endergebnis unterschiedliche Nachrichten: Herzlichen Glückwunsch bei Gewinn, Schade bei Verlust und irgendeine Nachricht bei keinem Gewinn oder Verlust.

Hilfe und Lösungen

Falls du nicht weiterkommst, kannst du dir kleine Denkanstöße bei unseren Tipps holen. Probiere aber am Besten zunächst aus, ob du das Problem selbstständig mithilfe der dir gegebenen Informationen lösen kannst. Wenn du fertig bist, kannst du deine Lösung mit unseren Lösungen vergleichen. Du musst auch nicht immer den gleichen Code haben, da es oft viele Wege zum Ziel gibt.

Robin Mehler
Projekte