Zufall in Pure Basic"programmieren"
-
- Beiträge: 51
- Registriert: 05.10.2008 10:13
Zufall in Pure Basic"programmieren"
man braucht ja für einige Spiele den zufall z.b. ich hab 3 ereignisse und möchte das eins von denen eintritt wie geht das in pure basic also das der computer dann quasi per zufall auswählt?
und geht es auch %chancen zu vergeben also das ich z.b sag ereigniss 1 hat eine 1% chance einzutreffen hingegen ereigniss 2 19% und ereigniss 3 80%
ich hatte schon viele ideen für gute spiele aber scheitert immer daran das ich nicht weiß wie man den zufall programmiert na ja wär nett mir zu helfen
Gruß Jonny
und geht es auch %chancen zu vergeben also das ich z.b sag ereigniss 1 hat eine 1% chance einzutreffen hingegen ereigniss 2 19% und ereigniss 3 80%
ich hatte schon viele ideen für gute spiele aber scheitert immer daran das ich nicht weiß wie man den zufall programmiert na ja wär nett mir zu helfen
Gruß Jonny
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Code: Alles auswählen
Zufall = Random(2)
If Zufall = 0
Debug "Ereignis 1"
EndIf
If Zufall = 1
Debug "Ereignis 2"
EndIf
If Zufall = 2
Debug "Ereignis 3"
EndIf
Code: Alles auswählen
Zufall = Random(99)
If Zufall <= 4
Debug "Ereignis 1 mit 5%"
EndIf
If Zufall >= 5 And Zufall <= 24
Debug "Ereignis 2 mit 20%"
EndIf
If Zufall >= 25 And Zufall <= 99
Debug "Ereignis 3 mit 75%"
EndIf
Zuletzt geändert von Kaeru Gaman am 04.01.2009 21:44, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Das wäre ein Lösung:
es gibt 100% also mache ich ein Random(99)
und verteile über Select die Wahrscheinlichkeiten:
es gibt 100% also mache ich ein Random(99)
und verteile über Select die Wahrscheinlichkeiten:
Code: Alles auswählen
Select Random(99)
Case 0 ;(1%)
Debug "Ergebnis 1"
Case 1 To 19 ;(19%)
Debug "Ergebnis 2"
Case 20 To 99 ; (80%)
Debug "Ergebnis 3"
EndSelect
Zuletzt geändert von STARGÅTE am 04.01.2009 21:56, insgesamt 1-mal geändert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 51
- Registriert: 05.10.2008 10:13
- Josef Sniatecki
- Beiträge: 657
- Registriert: 02.06.2008 21:29
- Kontaktdaten:
Nur so als Kommentar: Das 3. Case hat keine 80% Chance, da dasSTARGÅTE hat geschrieben:Code: Alles auswählen
Select Random(99) Case 0 ;(1%) Debug "Ergebnis 1" Case 1 To 19 ;(19%) Debug "Ergebnis 2" Case 10 To 99 ; (80%) Debug "Ergebnis 3" EndSelect
2. Case sich mit dem 3. Case überlappt.
Diese Methode finde ich aber auch am besten, um eine %-Chance
für Ereignise zu machen.
PB 4.61 | Windows Vista - 32Bit
Homepage
"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Homepage
"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
-
- Beiträge: 51
- Registriert: 05.10.2008 10:13
ähmm nochmal vielen dank dafür aber beim dritten hast du doch ein fehler gemacht oder? das müsste doch case 19 to 99 heißen oder?STARGÅTE hat geschrieben:Das wäre ein Lösung:
es gibt 100% also mache ich ein Random(99)
und verteile über Select die Wahrscheinlichkeiten:Code: Alles auswählen
Select Random(99) Case 0 ;(1%) Debug "Ergebnis 1" Case 1 To 19 ;(19%) Debug "Ergebnis 2" Case 10 To 99 ; (80%) Debug "Ergebnis 3" EndSelect
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
da ist nurn typo drin:
wäre korrekt
kommt übrigens aufs selbe raus wie meine Ifs.
die sind zwar mehr schreibarbeit, dafür kann man sie räumlich trennen.
Code: Alles auswählen
Case 20 To 99 ; (80%)
kommt übrigens aufs selbe raus wie meine Ifs.
die sind zwar mehr schreibarbeit, dafür kann man sie räumlich trennen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
jojo das war ein Tippfehler sry ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 51
- Registriert: 05.10.2008 10:13
also nochmal zu überprüfen ob ich alles verstanden hab das programm stimmt so oder?
Code: Alles auswählen
If OpenWindow(1,50,50,300,300,"Zufall")
ButtonGadget(1,20,20,50,50,"Start")
Zufallwert.l
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
If EventGadget()=1
Select Random(99)
Case 0 To 19
MessageRequester("zufall","die 20% chance ist eingetroffen")
Case 20 To 29
MessageRequester("zufall","die 10% chance ist eingetroffen")
Case 30 To 99
MessageRequester("zufall","die 70% chance ist eingetroffen")
EndSelect
EndIf
EndIf
Until EventID=#PB_Event_CloseWindow
EndIf
End
Achtung ich hab leider nur die demo von 4.3 und von der kaufversion leider nur 3.3
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22