Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:r:zahlenratespiel

Zahlenratespiel

In R lassen sich auch interaktive Programme erstellen.
Zum Lernen der Möglichkeiten hier ein Zahlenratespiel:

> zahlenraten()

Willkommen beim Zahlenraten in R! 

Ich habe mir eine geheime Zahl ausgedacht. Versuche, diese Zahl zu erraten.
Ich gebe Dir auch ein paar Hinweise.
Und los geht's:

Gib bitte eine Zahl zwischen 0 und 1000 ein: 1: 500
Du hast  500  eingegeben. Zu hoch geraten.
Gib bitte eine Zahl zwischen 0 und 1000 ein: 1: 250
Du hast  250  eingegeben. Zu hoch geraten.
Gib bitte eine Zahl zwischen 0 und 1000 ein: 1: 125
Du hast  125  eingegeben. Zu niedrig geraten.
[...]
Gib bitte eine Zahl zwischen 0 und 1000 ein: 1: 210
Du hast  210  eingegeben. Richtig!
Du hast  12  Versuche gebraucht.
Wenn Du systematisch vorgehst und den Suchbereich in Hälften teilst,
solltest Du nicht mehr als log2(1000)= 9.965784 Versuche benötigen.

Rufen Sie mit fix(zahlenraten) den R-Editor auf und kopieren Sie untenstehenden Programmcode hinein. Nach dem Speichern können Sie das Programm mit zahlenraten() ausführen.

Versuchen Sie, den Programmcode zu analysieren. Verwenden Sie die Hilfefunktion in "R", um mehr über die verwendeten Funktionen zu erfahren: ?cat, ?runif.

function () 
{
cat("\nWillkommen beim Zahlenraten in R! \n\n")
 
geheimzahl=floor(runif(n=1, min=0, max=1000))
cat("Ich habe mir eine geheime Zahl ausgedacht. ")
cat("Versuche, diese Zahl zu erraten.\nIch gebe Dir auch ein paar Hinweise.\n")
cat("Und los geht's:\n\n")
 
anzahl_versuche=0
 
repeat{
	anzahl_versuche=anzahl_versuche+1
 
	cat("Gib bitte eine Zahl zwischen 0 und 1000 ein: ")
	antwort <- scan( nlines=1, quiet=TRUE)
	cat("Du hast ",antwort," eingegeben. ")
 
	if (antwort < geheimzahl ) cat("Zu niedrig geraten.\n")
	if (antwort > geheimzahl ) cat("Zu hoch geraten.\n")
	if (antwort == geheimzahl ) break
	}
 
cat("Richtig!\nDu hast ", anzahl_versuche, " Versuche gebraucht.\n")
cat("Wenn Du systematisch vorgehst und den Suchbereich in Hälften teilst,\n")
cat("solltest Du nicht mehr als log2(1000)=", log2(1000), "Versuche benötigen.\n\n")
}
programmieren/r/zahlenratespiel.txt · Zuletzt geändert: 2016-04-16 17:21 von Robert Wiedermann

Seiten-Werkzeuge

Robert Wiedermann, Institut für Statistik (STAT), Universität für Bodenkultur Wien