Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können? auf Knopfdruck eine...

Preview:

Citation preview

Ein WürfelspielZUFALLSPROGRAMMIERUNG

Was soll das Programm können?

auf Knopfdruck eine Augenzahl anzeigen die Augenzahl einem von zwei Spielern dazu addieren unterscheiden, ob das Ergebnis kleiner, gleich oder größer einer

Grenze ist ggf. angeben, wer gewonnen hat (wer genau z.B. 30 Punkte

erzielt hat) sich auf Knopfdruck beenden ein neues Spiel beginnen können

Benötigte Variablen

Zufallszahl (zur Ermittlung der „gewürfelten“ Zahl) Stand1 und stand2 (Punktestand der beiden Spieler) Grenze (Punktestand, bei dem gewonnen wurde) Spieler (Zählervariable, welcher Spieler dran ist)

Struktogramm-Überblick

Spielbetrieb

Zufallszahl anzeigen

Zufallszahl bestimmen

Auswertung

Struktogramm SpielbetriebSpieler

= 1

janeinstand1 + zufall < grenze + 1

ja nein

stand2 + zufall < grenze + 1

ja nein

stand1erhöhen

msgBox (!)stand1 erniedrigen

stand2erhöhen

msgBox (!)stand2 erniedrigen

stand1 anzeigenSpieler = 2Buttontext ändern

stand2 anzeigenSpieler = 1Buttontext ändern

Struktogramm SpielbetriebSpieler

= 1

janeinstand1 + zufall < grenze + 1

ja nein

stand2 + zufall < grenze + 1

ja nein

stand1erhöhen

msgBox (!)stand1 erniedrigen

stand2erhöhen

msgBox (!)stand2 erniedrigen

stand1 anzeigenSpieler = 2Buttontext ändern

stand2 anzeigenSpieler = 1Buttontext ändernAuswertung

Struktogramm Auswertungstand1 = grenzeja nein

MsgBox(„Spieler 1 ist Sieger“)stand2 = grenzeja nein

MsgBox(„Spieler 2 ist Sieger“)stand1 = grenze und stand 2 = grenzeja nein

MsgBox(„Unentschieden“)Eventuell Löschen der bisherigen Werte

Vorsicht!

Hier ist ein Fehler drin.

Haben wir aber besprochen.

Bestimmen der Zufallszahl

Code:

Dim zufall As single

Zufall = Rnd()

label1.Text = zufall

Ein kleines Vorprogramm:Starten Sie erneut VB:Eine Form mit einem Button und einem Label:

Test des Zufallsgenerators

Es werden mit Hilfe der VB-Funktion zufällig Zahlen zwischen 0 und 0,999999 erzeugt.

Programm schließen und erneut starten...

Es werden immer die gleichen „Zufallszahlen“ erzeugt.

...von wegen Zufall

Randomize

Die Funktion Rnd arbeitet immer mit dem gleichen Startwert, dieser muss aber variabel sein:Einfügen der Zeile „Randomize“

Dim zufall As Single

Randomize()

zufall = Rnd()

label1.Text = zufall

2. Test

Funktioniert!!!

Aber was bringen uns Zahlen zwischen 0 und 0,999999?

Wir brauchen Zufallszahlen zwischen 1 und 6!

Die Funktion Int

Schneidet alle Nachkommastellen ab:Int(0,1234567) = 0

Dann hätten wir lauter Nullen.

Wenn wir aber mit 10 multiplizieren:0,23 * 10 = 2,3 Int(2,3) = 2

Ein Versuch mit Int...im Hilfsprogramm

Dim zufall As Single

Randomize()

zufall = Int(Rnd() * 6)

label1.Text = zufall

Und ein Test ergibt...

Test mit Int

... wir erhalten Zahlen zwischen 0 und 5!

Das Problem wird gelöst, indem wir...

Test mit Int

... wir erhalten Zahlen zwischen 0 und 5!

Das Problem wird gelöst, indem wir zu allen errechneten Zahlen 1 addieren:

Dim zufall As Single

Randomize()

zufall = Int(Rnd() * 6) + 1

label1.Text = zufall Geschafft!

Und los geht‘s

Nu müsstet ihr eigentlich klar kommen.

Recommended