Antwort mit KI erzeugt
Simulation Obstgarten in R
Um die Simulation des Kinderspiels Obstgarten in R zu implementieren, müssen wir uns zunächst überlegen, wie wir die verschiedenen Rollen mit den entsprechenden Handlungen im Spiel modellieren können. Die drei genannten Strategien zur Ernte bei einem Korbwurf (zufällige Wahl, Wahl der meisten Früchte, und Wahl der wenigsten Früchte) müssen dabei berücksichtigt werden. Wir werden auch die Wahrscheinlichkeiten berechnen, mit denen die Spieler gegen den Raben gewinnen können, basierend auf den Ergebnissen aus mehreren simulierten Spielen.
Die Basis der Funktion
sim.obstgarten
beinhaltet:
1. Eine Schleife für die Spieldurchläufe.
2. Eine Auswahllogik basierend auf dem Ergebnis des Würfelwurfs.
3. Eine Strategieimplementierung für den Wurf eines Korbes.
Implementierung in R
R
sim.obstgarten <- function(n, strategie) {
gewinne <- 0 # Anzahl der gewonnenen Spiele
wuerfelOptionen <- c("gruen", "gelb", "rot", "blau", "korb", "rabe")
for (spiel in 1:n) {
obst <- c(gruen = 10, gelb = 10, rot = 10, blau = 10) # Initialer Zustand der Früchte
rabe <- 0 # Fortschritt des Rabenpuzzles
while(sum(obst) > 0 && rabe < 9) { # Solange noch Obst da ist und der Rabe nicht fertig gepuzzelt ist
wurf <- sample(wuerfelOptionen, 1) # Würfeln
if (wurf == "rabe") {
rabe <- rabe + 1
} else if (wurf == "korb") {
# Strategieimplementierung
if (strategie == "zufaellig") {
obstNamen <- names(obst[obst > 0])
auswahl <- sample(obstNamen, min(2, length(obstNamen)))
} else if (strategie == "meisten") {
auswahl <- names(obst[obst == max(obst)])
auswahl <- head(auswahl, min(2, length(auswahl)))
} else if (strategie == "wenigsten") {
auswahl <- names(obst[obst == min(obst[obst > 0])])
auswahl <- head(auswahl, min(2, length(auswahl)))
}
# Aktualisiere Obst
for (frucht in auswahl) {
obst[frucht] <- obst[frucht] - 1
}
} else {
obst[wurf] <- max(0, obst[wurf] - 1)
}
}
if (sum(obst) == 0) { # Gewonnen, wenn kein Obst mehr auf dem Spielbrett ist
gewinne <- gewinne + 1
}
}
return(list("Strategie" = strategie, "Gewinne" = gewinne, "Spiele" = n, "Gewinnwahrscheinlichkeit" = gewinne / n))
}
# Spiel Simulation mit unterschiedlichen Strategien
set.seed(42) # Für Reproduzierbarkeit
ergebnis_zufaellig <- sim.obstgarten(10000, "zufaellig")
ergebnis_meisten <- sim.obstgarten(10000, "meisten")
ergebnis_wenigsten <- sim.obstgarten(10000, "wenigsten")
# Ergebnisse ausgeben
print(ergebnis_zufaellig)
print(ergebnis_meisten)
print(ergebnis_wenigsten)
Mit dieser Funktion werden 10000 Spiele simuliert, um eine solide Datenbasis für die Auswertung der Gewinnwahrscheinlichkeiten zu haben. Durch die zufällige Auswahl des Würfelwurfs und die Implementierung der verschiedenen Erntestrategien beim Wurf eines Korbs, erhalten wir einen guten Eindruck davon, wie effektiv jede Strategie im Vergleich ist. Die Ausgabe am Ende gibt Auskunft über die Anzahl der Gewinne und die entsprechende Gewinnwahrscheinlichkeit für jede Strategie.