Thema Datum  Von Nutzer Rating
Antwort
Rot Würfel Spiel
17.06.2008 17:49:14 jb
NotSolved

Ansicht des Beitrags:
Von:
jb
Datum:
17.06.2008 17:49:14
Views:
3271
Rating: Antwort:
  Ja
Thema:
Würfel Spiel
Hallo bin im 2. Semester WIW un ham folgen Aufgabe bekommen:

1. Würfelspiel (10 Punkte)
Würfelspiel für 2 Personen und 1 Würfel
Der Spieler mit der höchsten Augenzahl beginnt.
Ziel des Spiels ist es 50 Punkte zu erreichen. Die Zahlen von 1 bis 5 werden immer addiert.
Wenn man eine 6 gewürfelt hat, werden die geworfenen Würfel nicht gezählt. Nur wenn man selber
entschieden hat, dass man aufhört, werden die Punkte gezählt.
Derjenige, der zuerst 50 Punkte erreicht hat, gewinnt. Man darf aber auch über die 50 gehen,
wenn man noch einmal am Zug ist und der Gegenspieler bereits 50 Punkte erreicht hat.
Beispiel:
Spieler A beginnt
A würfelt 4
A würfelt 3
A hat jetzt 7 Punkte
A übergibt an B
B würfelt 4
B würfelt 3
B würfelt 6
B hat jetzt 0 Punkte
B übergibt an A
A würfelt 1
A würfelt 6
A hat jetzt 7 Punkte
A übergibt an B
B würfelt 4
B würfelt 3
B würfelt 5
B würfelt 5
B hat jetzt 17 Punkte
B übergibt an A.
usw.
Erstellen Sie hierzu ein ablauffähiges VBA Programm.

wir haben ein Problem mit der Funktion am Ende dass ein Spieler,wenn noch nicht gleich viel Runden gespielt worden sind und 50 Punkte erreicht wurden nochmal würfeln dar bzw. net würfeln (siehe aufgabe oben). Danke für eure Hilfe

unser Quellcode schaut wie folgt aus:

Option Explicit
Dim Spieler1 As String
Dim Spieler2 As String
Dim Summe1 As Integer
Dim Summe2 As Integer
Dim Summe1R As Integer
Dim Summe2R As Integer
Dim Wurf1 As Integer
Dim Wurf2 As Integer
Dim Sp1active As Boolean
Dim Sp1start As Boolean

Private Sub userform_initialize()
Spieler1 = InputBox("Bitte geben Sie den Namen des ersten Spielers ein!!", , "Norman")
Spieler2 = InputBox("Bitte geben Sie den Namen des zweiten Spielers ein!!", , "Jona")
Label1.Caption = Spieler1
Label2.Caption = Spieler2
Label3.Caption = "gewürfelt: 0"
Label4.Caption = "gewürfelt: 0"
Label5.Caption = "Rundenpunkte: 0"
Label6.Caption = "Rundenpunkte: 0"
Label7.Caption = ""
Label8.Caption = ""
Wurf1 = 0
Wurf2 = 0
Summe1 = 0
Summe2 = 0
Summe1R = 0
Summe2R = 0
Do
Wurf1 = zahl
Wurf2 = zahl
Loop Until Wurf1 <> Wurf2
If Wurf1 > Wurf2 Then
MsgBox (Spieler1 & " darf beginnen!!")
Sp1start = True
Call aufrufenSp1
Else
MsgBox (Spieler2 & " darf beginnen!!")
Sp1start = False
Call aufrufenSp2
End If
End Sub
Private Sub CommandButton3_Click()
Label7.Caption = "Gesamtpunkte: " & Summe1
Label8.Caption = "Gesamtpunkte: " & Summe2
If Sp1active = True Then
Call aufrufenSp2
Else: Call aufrufenSp1
End If
End Sub
Private Sub CommandButton4_Click()
userform_initialize
End Sub
Private Sub CommandButton5_Click()
Unload UserForm1
End Sub
Private Function zahl() As Integer
Dim wuerfel As Integer
wuerfel = Int(Rnd() * 6 + 1)
zahl = wuerfel
End Function
Private Sub aufrufenSp1()
Sp1active = True
CommandButton1.Enabled = True
CommandButton2.Enabled = False
Wurf2 = 0
Summe2R = 0
Label4.Caption = "gewürfelt: 0"
Label6.Caption = "Rundenpunkte: 0"
End Sub
Private Sub aufrufenSp2()
Sp1active = False
CommandButton1.Enabled = False
CommandButton2.Enabled = True
Wurf1 = 0
Summe1R = 0
Label3.Caption = "gewürfelt: 0"
Label5.Caption = "Rundenpunkte: 0"
End Sub
Private Sub CommandButton1_Click()

Wurf1 = zahl
If Wurf1 <> 6 Then
Summe1R = Summe1R + Wurf1
Summe1 = Summe1 + Wurf1
Else: MsgBox ("Sie haben eine 6 gewürfelt und somit ist " & Spieler2 & " an der Reihe!!")
Summe1 = Summe1 - Summe1R
Call aufrufenSp2
End If
Label3.Caption = "gewürfelt: " & Wurf1
Label5.Caption = "Rundenpunkte: " & Summe1R
If Summe1 >= 50 Then
If Sp1start = True Then
MsgBox ("Sie haben " & Summe1 & " Punkte! " & Spieler2 & " hat noch eine Runde Zeit um zu gewinnen!")
Call aufrufenSp2
Else: MsgBox ("Sie haben mit " & Summe1 & " Punkten gewonnen!")
Call NeuesSpiel
End If
End If
End Sub
Private Sub CommandButton2_Click()
Wurf2 = zahl
If Wurf2 <> 6 Then
Summe2R = Summe2R + Wurf2
Summe2 = Summe2 + Wurf2
Else: MsgBox ("Sie haben eine 6 gewürfelt und somit ist " & Spieler1 & " an der Reihe!!")
Summe2 = Summe2 - Summe2R
Call aufrufenSp1
End If
Label4.Caption = "gewürfelt: " & Wurf2
Label6.Caption = "Rundenpunkte: " & Summe2R
If Summe2 >= 50 Then
If Sp1start = False Then
MsgBox ("Sie haben " & Summe2 & " Punkte! " & Spieler1 & " hat noch eine Runde Zeit um zu gewinnen!")
Call aufrufenSp1
Else: MsgBox ("Sie haben mit " & Summe2 & " Punkten gewonnen!")
Call NeuesSpiel
End If
End If
End Sub
Private Sub NeuesSpiel()
Dim Frage_Antwort As Variant
Frage_Antwort = MsgBox("Möchten Sie noch einmal Spielen??", vbYesNo + vbQuestion + vbDefaultButton1)
If Frage_Antwort = vbYes Then
Call userform_initialize
Else: Unload UserForm1
End If
End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Würfel Spiel
17.06.2008 17:49:14 jb
NotSolved