Resourcensparendes wechseln von Arraynamen.

Katzehuhn

Erfahrenes Mitglied
Ich möchte ein kleines Kampfsystem programmieren ( damit klar is für was ich das brauche). Dabei kann man die Kampfrunden angeben und nach bestimmten Faktoren beginnt entweder die eine oder andere Gruppe.
Da pro Runde jede Gruppe einmal dran ist und es flexibel ist wer beginnt, hab ich nun die Frage wie ich das "Namenwechseln" am effizientesten hinbekomm.
Wär es sinnvoll list($angreifer,$verteidiger) = array($verteidiger,$angreifer); jede runde durchzuführen? Oder soll ich ne Funktion machen? function kampf($a,$v){}

Wobei man bei der Funktion die Arrays immer returnen müsste?^^ Help;)
 
Sorry, ich raff nicht genau was dein Problem ist. Verstehe deinen Post nicht so recht..

Mal angenommen man nennt die beiden Gruppen nicth $angreifer und $verteidiger sondern $gruppe1 und $gruppe2. Nun, fängt einfach, sagen wir mal $gruppe2 an. Als nächstes kommt wieder $gruppe1 und so weiter immer abwechslungsweise. Wieso musst du da irgendwelche Namen ändern? *sich am Kopf kratz*

;)
 
redX hat gesagt.:
Sorry, ich raff nicht genau was dein Problem ist. Verstehe deinen Post nicht so recht..

Mal angenommen man nennt die beiden Gruppen nicth $angreifer und $verteidiger sondern $gruppe1 und $gruppe2. Nun, fängt einfach, sagen wir mal $gruppe2 an. Als nächstes kommt wieder $gruppe1 und so weiter immer abwechslungsweise. Wieso musst du da irgendwelche Namen ändern? *sich am Kopf kratz*

;)
Na wenn jetzt nicht feststeht welche Gruppe beginnt. Wie ich am gescheitesten auf diese Arrays zugreife. Da gibts ja viele Möglichkeiten ich möcht halt nur die schönste wählen.
Wär es zb gscheid $a =&$gruppe1; anderfalls $v = &gruppe1;
und halt jede Kampfrunde $a mit $v zu tauschen?
Hoff is verständlicher^^
 
Das kannst du schon machen. Aber eine einfache Zuweisung braucht extrem wenig Resourcen. Da musst du dir nicht so grosse Gedanken drum machen. Wenn du ein Script hast welches möglichst leicht sein soll, dann würde ich schauen das Schleifen so wenig wie möglich ausgeführt werden und das man möglich wenig IO hat. Aber solch eine Zuweisung, ob jetzt mit der list() Funktion oder eifnach mit =, merkst du nicht.

Du kannst entweder wie du zu Beginn geschrieben hast immer wieder die Variablen tauschen. Oder du hast eben einfach 2 Gruppen. Und eine Variable, in der drinn steht wer als letztes angegriffen hat. Und dann muss einfach als nächstes die andere Gruppe angreifen. Und dann den inhalt der controll Variable wieder wechseln, und so weiter und so fort :)

Aber wie gesagt. Die Performance ist unter beiden Versionen sehr gut :)

;)
 
Die Variante $a =&$gruppe1 ... ist um einiges ( 10 fache und mehr) schneller als list(array1,array2) => array(array2,array1). Was vermudlich daran liegt das bei list der Gesamte Inhalt des Arrays umgeschrieben wird und nicht einfach die Arraybezeichnung geändert wird.
Thx und Erledigt
 
Zurück