If elseIf Frage
Übersicht

dada11Betreff: If elseIf Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich möchte ein Bonussystem in meinem Spiel einfügen. Da habei ich mal eine Frage. Kann man das so machen ? Code: [AUSKLAPPEN] if anzahl_schüsse < 50 then bonus=1000
elseif anzahl_schüsse < 75 then bonus=500 elseif anzahl_schüsse < 100 then bonus=250 elseif anzahl_schüsse > 100 then bonus=0 |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Prinzip schon; aber bei deinem Beispiel wird bei genau 100 Schüssen kein Bonus definiert (Beim ersten mal gibts dann 0 Bonus, alle weitere Male gibts den Bonus der vorangehenden Runde)
Ich würde es daher so machen: Code: [AUSKLAPPEN] If anz_schuesse <= 50 Then
bonus = 100 ElseIf anz_schuesse <= 75 Then bonus = 500 ElseIf anz_schuesse <= 100 Then bonus = 250 Else bonus = 0 EndIf mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Meinst du sowas? (kleines Beispiel)
Zitat: Framework BRL.StandardIO
Local bonus = 0 Local anzahl_schuesse = 50 If anzahl_schuesse<50 Then bonus=1000 ElseIf anzahl_schuesse<75 And anzahl_schuesse>=50 Then bonus=500 ElseIf anzahl_schuesse<100 And anzahl_schuesse>=75 Then bonus=250 ElseIf anzahl_schuesse>=100 Then bonus=0 Print bonus EDIT: Da war einer schneller... |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du die Reihenfolge umdrehst, musst du keine Doppelüberprüfungen machen, da die nachfolgenden nur geprüft werden, wenn man "besser" war als die vorherige Überprüfung.
Code: [AUSKLAPPEN] if anzahl_schüsse >= 100 then bonus=0 elseif anzahl_schüsse < 100 then bonus=250 elseif anzahl_schüsse < 75 then bonus=500 elseif anzahl_schüsse < 50 then bonus=1000 |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nö Du.
erstmal: Umlaute sind in variablennamen nicht erlaubt. zweitens wird bei deiner elseiorgie immer der niedrigst mögliche Wert genommen, also bekomme ich nur 250 oder 0 Punkte raus. Empfehle daher: if schusse >100 then bonus = 0 if scusse <100 then bonus = 250 if... ist noch dazu kürzer als mit den ganzen elseifs. Beachte dass die Reihenfolge hier wichtig ist. Was die performance angeht wäre diese Lösung vielleicht interessant: bonus = 1000 - (schusse/25)*250 if Bonus <0 then bonus = 0 |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
dada11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Leutz.....
Das war wie immer schnell und kompetent ![]() Werde mal die Varianten durchspielen und sehen was am nesten passt. Dada |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group