Schleife, bis es vorhanden ist

So danke schonmal an alle, ich habe mir folgendes aus euren Beispielen gebastelt:

PHP:
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
if (($eisencosts >= $row[eisen]) && ($kapitalcosts >= $row[kapital]))
{
$weapon = min(
    floor($row['eisen']/$weaponinfo['eisen']),
    floor($row['kapital']/$weaponinfo['kapital'])
);
}

Nochmal zum Verständniss; wenn die Kosten höher sind als das Vorhandene, wird einfach das Vorhandene durch die Kosten geteilt und damit $weapon ermittelt oder?

Werden dabei auch beide berücksichtigt? Also nicht das eines der beiden 0 ist:

PHP:
floor($row['eisen']/$weaponinfo['eisen'])
und
PHP:
floor($row['kapital']/$weaponinfo['kapital'])
sollten schon beide mindestens 1 sein! Ist das korrekt?
 
Mit von mir genanntem Algorithmus erhältst du bereits das Maximum, das bei vorhandenen und benötigten Ressourcen möglich ist.
Ein Beispiel:
PHP:
$row = array(
	'eisen'   => 1200,
	'kapital' => 1000,
);
$weaponinfo = array(
	'eisen'   => 120,
	'kapital' => 250,
);
$weapon = min(
	floor($row['eisen']/$weaponinfo['eisen']),
	floor($row['kapital']/$weaponinfo['kapital'])
);
echo 'Deine Ressourcen ('.$row['eisen'].' Eisen, '.$row['kapital'].' Kapital) erlauben den Bau von '.$weapon.' Waffen (je '. $weaponinfo['eisen'].' Eisen, '.$weaponinfo['kapital'].' Kapital). Danach bleiben dir noch '.($row['eisen']-($weapon*$weaponinfo['eisen'])).' Eisen und '.($row['kapital']-($weapon*$weaponinfo['kapital'])).' Kapital übrig.';
 
Richtig ein Browsergame!

Es sind nun noch ein paar Abschlussarbeiten notwendig und dann kanns Online gehen!

Danke der Nachfrage :)
 
So nochmal zu dem Code;

Also wenn $eisencosts $row[eisen] übersteigt, dann wird ja min() ausgeführt. Nur irgendwie funktioniert das nicht so richtig, denn es soll ja eigentlich $weapon solange reduziert werden, bis $eisencosts und $kapitalcosts in Budget passt...



PHP:
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
if (($eisencosts > $row[eisen]) && ($kapitalcosts > $row[kapital]))
{
$weapon = min(
floor($row['eisen']/$weaponinfo['eisen']),
floor($row['kapital']/$weaponinfo['kapital'])
);
}
 
Ich glaube auch das es mit der min()-Schreibweise nicht funktionieren wird.
Mach wieder eine Schleife.

http://de2.php.net/min

Demnach würde er einfach nur das kleinste suchen.
Also gibt er dir entweder das Ergebnis von $row['eisen']/$weaponinfo['eisen']
oder von $row['kapital']/$weaponinfo['kapital']

und das ist ja nicht dein Ziel!
 
Mit von mir genanntem Algorithmus erhältst du bereits das Maximum, das bei vorhandenen und benötigten Ressourcen möglich ist.
Ein Beispiel:
PHP:
$row = array(
	'eisen'   => 1200,
	'kapital' => 1000,
);
$weaponinfo = array(
	'eisen'   => 120,
	'kapital' => 250,
);
$weapon = min(
	floor($row['eisen']/$weaponinfo['eisen']),
	floor($row['kapital']/$weaponinfo['kapital'])
);
echo 'Deine Ressourcen ('.$row['eisen'].' Eisen, '.$row['kapital'].' Kapital) erlauben den Bau von '.$weapon.' Waffen (je '. $weaponinfo['eisen'].' Eisen, '.$weaponinfo['kapital'].' Kapital). Danach bleiben dir noch '.($row['eisen']-($weapon*$weaponinfo['eisen'])).' Eisen und '.($row['kapital']-($weapon*$weaponinfo['kapital'])).' Kapital übrig.';


Wie es Gumbo bereits beschrieben hat, ermittelt er doch $weapon, indem er einfach die vorhandenen Resourcen durch die benötigten Resourcen dividiert.

Dadurch wird doch bereits die maximal möglichen $weapon ermittelt oder sehe ich das falsch?
 
Achso sorry das habe ich garnicht gesehen ;)

Wenn das so funktioniert wär ja klasse! Passiert ja doch mehr als man glaubt ;)
Dennoch würde er doch irgendein Ergebnis von irgendeiner Division zurückliefern, oder?

Also entweder 10 oder 4...
 
So jetzt funktioniert es;

PHP:
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
if (($eisencosts > $row[eisen]) or ($kapitalcosts > $row[kapital]))
{
$weapon = min(
floor($row['eisen']/$weaponinfo['eisen']),
floor($row['kapital']/$weaponinfo['kapital'])
);
}

Danke an alle! :)
 
Zurück