anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 22:23

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: case Anwendung
BeitragVerfasst: Mo 11 Apr, 2005 18:26 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
[php]switch(e_rand(1,7)){
case 1:
output("Du bekommst einen zusätzlichen Waldkampf!");
$session[user][turns]++;
break;
case 2:
case 3:
output("Du fühlst deine Sinne geschärft und bemerkst `%ZWEI`^ Edelsteine in der Nähe!");
$session[user][gems]+=2;
//debuglog("found 2 gem from a fairy");
break;
case 4:
case 5:
output("Deine maximalen Lebenspunkte sind `bpermanent`b um 1 erhöht!");
$session[user][maxhitpoints]++;
$session[user][hitpoints]++;
break;
case 6:
case 7:
increment_specialty();
break;[/php]

Das ist ein ausschnit aus fairy1.php
Daran habe ich versucht zu ersehen wie case verwendet wird.
Leider komme ich aber irgendwie durcheinander.
switch(e_rand(1,7)) das ist warscheinlich der wechsel vom case 1 bis 7(soviel verstehe ich noch).
[php]case 1:
output("Du bekommst einen zusätzlichen Waldkampf!");
$session[user][turns]++;
break;
case 2:
case 3:[/php]
Aber wieso wird nicht bei case 2 weitergemacht, sondern noch ein case und dann der nächste Fall? :???:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 18:33 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
mal angenommen switch(e_rand()) ist 1,3:

case 1:
case 2:
[bla]
break;
case 3:
[bla]
break;
}

das heisst genausoviel wie:
$rand=e_rand(1,3);
if($rand == 1 && $rand == 2) [...]
else [...]

mfg

ansonsten: RFTM!
http://ch2.php.net/manual/de/control-st ... switch.php

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 18:44 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Ahh, gut danke.
Ich denke nun habe ich so ein wenig verstanden.
Der Rest kommt dann von selbst :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: case Anwendung
BeitragVerfasst: Mo 11 Apr, 2005 18:59 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[php]switch ()
[/php]

In die Klammer kommt, wie oder nach was er switchen soll, z.B.
[php]switch (e_rand(1,7))
oder
switch ($_GET['op'])
oder, oder....
[/php]


Dann kommen die cases, die Fälle.
das kann so aussehen:
[php]case 1:[/php]
oder so:
[php]case "1":[/php]
oder so:
[php]case "drin":[/php]

Man kann nun ein Zufall bestimmen, wenn man kein break; macht.
D.h.
wenn e_rand 2 ist, dann "schaltet" er auf case 2:
Dann fählt er durch, weiter bis zu einem break;

HOffen konnte helfen :wink:


EDIT: Jetzt wart ihr wieder mal schneller :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 19:03 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Meteora hat geschrieben:
if($rand == 1 && $rand == 2)

:nene:
||
:baeh: :D

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 19:28 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
[php]switch (e_rand(1,10)) [/php]

also wenn ich das(die) break(s) zwischen den 10 mal case weglasse, wird es per Zufall bestimmt, habe ich das jetzt richtig verstanden?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 19:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
wagh natürlich ||

* :zack: *

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 20:11 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Garlant hat geschrieben:
also wenn ich das(die) break(s) zwischen den 10 mal case weglasse, wird es per Zufall bestimmt, habe ich das jetzt richtig verstanden?

Nein. Dann werden nur ab dem zutreffenden case auch alle weiteren durchlaufen und nicht beim nächsten abgebrochen.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 20:43 
Offline
Meister
Meister

Registriert: Sa 25 Sep, 2004 11:49
Beiträge: 337
Wohnort: Irgendwo im Sauerland
LoGD: http://www.rulina.de/logd/source.php
switch(e_rand(1,10)){
case 1:
case 2:
case 3:
case 4:
case 5:
output("Dies passier nun in 5 von 10 Fällen");
break;
case 6:
case 7:
output("Dies in 2 von 10");
break;
case 8:
case 9:
case 10:
output("Dies in 3 von 10, verstanden?");
break;
}

_________________
*Mekkelon - Mitglied im Renais-Völkerbund*
Thread


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 20:53 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Ich denke schon das ich nun verstanden habe, wie der Zufall funktioniert.
Wenn ich jetzt irgendetwas nicht weiß kann ich ja wieder fragen, aber soweit ist bei mir nun alles klar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 11 Apr, 2005 22:03 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Vllt. nochmal als kleine "Hilfe": switch-case-Anweisungen kennen keinen Zufall. Dort wird im switch ein fester werd übergeben, der dann der Reihe nach auf Übereinstimmung mit den cases geprüft wird.
Für den Zufall sorgt ausschließlich die LoGD-eigene Funktion e_rand, die ja eine Zufallszahl liefert.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 16 Apr, 2005 12:09 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Di 06 Apr, 2004 08:03
Beiträge: 73
switches sind sehr maechtig...

im gegensatz zu if/elseif/else bilden sie eine sprungmarke mittels 'case'
ausserdem ist es ein block...
und bloecke werden solange durchlaufen, bis dass ihr ende erreicht wird, oder ein abbruchkommando (wie brake) kommt

[php]switch($wert){
case 1:
break;
case 2:
case 3:
break;
default:
}[/php]
sind zwar gaengig, aber moeglich ist auch folgendes:

[php]switch($wert){
case 4711:
anweisung1();
case 0815:
anweisung 2();
break;
.
.
.
}[/php]

das heisst,d ass im fall von 4711 erst die erste anweisung, dann bei 0815 die 2. anweisung durchlaufen wird...beim 2. aber nur die 2. anweisung..
udn bei allen anderen faell - aehm - ja, halt alles andere *G*


ein switch ist einem kleinen begrenzten gotos aehnlich *duck und renn*


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 42 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum