16
Ein Würfelspiel ZUFALLSPROGRAMMIERUNG

Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können? auf Knopfdruck eine Augenzahl anzeigen die Augenzahl einem von zwei Spielern

Embed Size (px)

Citation preview

Page 1: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

Ein WürfelspielZUFALLSPROGRAMMIERUNG

Page 2: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 3: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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)

Page 4: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

Struktogramm-Überblick

Spielbetrieb

Zufallszahl anzeigen

Zufallszahl bestimmen

Auswertung

Page 5: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 6: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 7: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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.

Page 8: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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:

Page 9: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 10: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 11: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

2. Test

Funktioniert!!!

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

Wir brauchen Zufallszahlen zwischen 1 und 6!

Page 12: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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

Page 13: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

Ein Versuch mit Int...im Hilfsprogramm

Dim zufall As Single

Randomize()

zufall = Int(Rnd() * 6)

label1.Text = zufall

Und ein Test ergibt...

Page 14: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

Test mit Int

... wir erhalten Zahlen zwischen 0 und 5!

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

Page 15: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

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!

Page 16: Ein Würfelspiel ZUFALLSPROGRAMMIERUNG. Was soll das Programm können?  auf Knopfdruck eine Augenzahl anzeigen  die Augenzahl einem von zwei Spielern

Und los geht‘s

Nu müsstet ihr eigentlich klar kommen.