Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Zufallsspiel

VBA Zufallsspiel
07.05.2007 15:23:09
Peter
Hallo! Habe mal wieder ein Problem mit meinem VBA-Code:
Die Anzahl der tatsächlich ausgeführten Spiele stimmt nicht mit der eingegeben Anzahl überein; irgendetwas stimmt in der Schleife nicht, ich kann es aber nicht finden.
Zudem: Gibt es eine Möglichkeit, die Ausführung des Skripts zu verlangsamen? Ich wollte die Zufallszahlen-Würfe visualisieren mit meinem Zahlenbandwurm, es geht aber eben viel zu schnell )-:
Hier die Datei, hoffentlich kann mir einer helfen.
https://www.herber.de/bbs/user/42310.xls
Vielen Dank, Peter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zufallsspiel
07.05.2007 17:10:17
Erich
Hallo Peter,
was meinst du mit "Anzahl der tatsächlich ausgeführten Spiele"?
Der in D9 eingegebene Wert wird genau abgearbeitet.
Die Summe der Siege der beiden Spieler (Q9+X9) kann größer als D9 sein,
es kann durchaus sein, dass in einem Spiel beide gewinnen.
Probier mal
https://www.herber.de/bbs/user/42313.xls
Noch eine Empfehlung:
Du solltest Variablen mit Typ (Integer, Long, ...) deklarieren, es lohnt sich auf Dauer.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: VBA Zufallsspiel
07.05.2007 17:51:00
Peter
Weiß gar nicht, was ich sagen soll...direkt richtig formatiert und kommentiert den Code inkl. der Änderungen, die es sein sollten. Vielen vielen Dank, bin echt ziemlich raus aus Programmiergeschichten; die letzten Erfahrungen waren vor zirka 15 Jahren mit Basic.
"Die Summe der Siege der beiden Spieler (Q9+X9) kann größer als D9 sein,
es kann durchaus sein, dass in einem Spiel beide gewinnen."
DARAN hab ich natürlich in meiner Betriebsblindheit NICHT gedacht bzw. programmiertechnisch versagt; ich wollte das als "Wettkampf" simulieren, um damit im weiteren das Gesetz der kleinen / großen Zahlen zu simulieren...
Deshalb sollte (in meinem Kopf jedenfalls) nach dem ersten Wurf, der auf 60 komplettiert, das Spiel vorbei sein, sprich der jeweilige andere Spieler KEINE CHANCE mehr zum Ausgleich haben. Ich nehme an, dafür hätte ich die Schleife anders konzipieren müssen, richtig?!
Grüße und besten Dank, Peter!

Anzeige
AW: VBA Zufallsspiel
07.05.2007 18:22:00
Erich
Hallo Peter,
anders konzipieren müsstest du nicht. Es würde ausreichen, dass bei "Ende=1" der 2. Spieler nicht mehr drankommt.
Dafür reichte ein "If Ende = 0 then" und "End If" um die Zeilen für den zweiten Spieler.
Ich habe "Ende" mal durch eine Boolean-Variable "bolWeiter" ersetzt:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile, Spalte, Zeile2, Spalte2, Obergrenze, Untergrenze
Dim Punkte1, Punkte2, Schleife As Long, bolWeiter As Boolean
If Intersect(Target, Range("D9:D9")) Is Nothing Then Exit Sub
Application.EnableEvents = False  ' sonst wird diese Prozedur ständig aufgerufen
Cells(9, 17) = ""  ' Q9
Cells(9, 24) = ""  ' X9
Randomize
Do While Schleife = 64 Then
Punkte1 = Punkte1 - Cells(Zeile, Spalte)
End If
Zeile = Zeile + 1
Cells(3, Punkte1) = "o"
If bolWeiter Then
Application.Wait Now + TimeValue("00:00:01")
Cells(Zeile2, Spalte2) = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)
Punkte2 = Punkte2 + Cells(Zeile2, Spalte2)
If Punkte2 = 63 Then
Cells(9, 24) = Cells(9, 24) + 1
bolWeiter = False
ElseIf Punkte2 >= 64 Then
Punkte2 = Punkte2 - Cells(Zeile2, Spalte2)
End If
Zeile2 = Zeile2 + 1
Cells(4, Punkte2) = "o"
If bolWeiter Then Application.Wait Now + TimeValue("00:00:01")
End If
Loop
Schleife = Schleife + 1
If bolWeiter Then Application.Wait Now + TimeValue("00:00:02")
Loop
Application.EnableEvents = True
End Sub

Allerdings: Bei dieser Regel ist Spieler 1 im Vorteil.
Ist das wünschenswert, wenn du das Gesetz der großen Zahlen demonstrieren willst?-
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: VBA Zufallsspiel
07.05.2007 18:36:12
Peter
"Allerdings: Bei dieser Regel ist Spieler 1 im Vorteil."
Da hast du zweifelsohne recht. Wirklich fair ist die Geschichte nicht )-:
Eigentlich unsauber, wenn ich damit eine mathematische Simulation durchführen will, da muss ich zustimmen.

AW: VBA Zufallsspiel
07.05.2007 19:20:00
Erich
Hallo Peter,
noch eine Idee:
Du könntest jedem einen halben Punkt geben, wenn beide das Zeil erreichen...
Grüße von Erich aus Kamp-Lintfort

AW: VBA Zufallsspiel
07.05.2007 19:28:00
Peter
Da hast du ebenfalls wieder recht...
"Oh mann" - ich hoffe, es ist eine Art von Betriebsblindheit bei der Zufallsgeschichte - fühle mich mittlerweile "denkbehindert"... )-:
So werde ich es jedenfalls machen!
Vielen Dank und Grüße, Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige