Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Duell-Script BG [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Duell-Script BG


 
exsilence
15-09-2006, 15:05 
 
Huhu Ihr,

also ich programmiere just4fun ein Mini Browsergame, kam bis jetzt auch ganz gut voran, betonung: bis jetzt :D

Ich weiß nicht wie ich das Duellscript realisieren soll :(

an Variablen hab ich:




$healthpointplayer = array( "3500", "1600" );

$dmgplayer1 = 300;
$dmgplayer2 = 800;

$runden = 1;


Jetzt sollen die halt sich schlagen bis einer 0 Healthpoint hat,
jedoch weiß ich nicht wie ich es realiseren soll
:mad:

Hab gestern schon 3-4 Stunden rumprobiert, einfach keine Lösung rausbekommen, will ja auch nicht wegen jedem sch... fragen,
aber scheinbar gehts nicht anders.

while($healthpointplayer > 0)
{
$lebensenergieberechnen1 = $healthpointplayer[0] - $dmgplayer2;
$lebensenergieberechnen2 = $healthpointplayer[1] - $dmgplayer1;

echo "Runde $runden <br> ";
echo "Spieler1 wurde getroffen mit $dmgplayer2 Schadenspunkten von Spieler2 und hat noch $lebensenergieberechnen1 HP ";
echo "Spieler2 wurde getroffen mit $dmgplayer1 Schadenspunkten von Spieler1 und hat noch $lebensenergieberechnen2 HP ";

$healthpointplayer = array("$lebensenergieberechnen1", "lebensenergieberechnen2");

$runden++;
}

Das ist das Script jetzt extrem vereinfacht, hab noch viel mehr Sachen drin. z.B. der Damage sit nur ein durchschnittswert, es können mal 250 sein und mal 350 (hier hab ich jetzt 300 als durchschnitt). Dann wird die Lebensenergie als % angezeigt.
Uund so weiter ;)

Die echo's hab ich erstmal für mich so dahingeschrieben, dass ich beim aufrufen sehe was alles passiert.


Jedoch wird immer nur die 1. Runde "gespielt".
Die energie geht nie tiefer :dontknow:
Ich denke mal dass ich die Werte nach jeder Runde in die MySQL datenbank speichern muss und dann immer abfragen muss.
(hab ich mir einfach mal so gedacht)

Aber das zieht sicher verdammt viel.

Und wie muss ich das bei dem while machen?
ist das richtig so mit $healthpointsplayer?
Überprüft er da das komplette Array oder nur das erste?


Gruß
Exsilence

 
closure
15-09-2006, 15:53 
 
Hi,

also ich seh da erstmal ein syntax-error. Das sollte dir dein php-parser aber auch
"sagen".


$healthpointplayer array("$lebensenergieberechnen1", "lebensenergieberechnen2");


greets

 
exsilence
15-09-2006, 16:00 
 
Hehe danke,
dass war aber nicht mein orginal code, hab ganz schnell hier einen hingeschrieben, dass ihr in etwa seht, wie ich es aufgebaut hab.
habs auch nicht getestet, aber ich editiers mal :)

 
3DMax
15-09-2006, 16:01 
 
da gabs noch mehrere fehler.
was solls, mir war gerade langweilig ;)


$healthpointplayer=array(3500, 1600);
$dmgplayer1=300;
$dmgplayer2=800;
$runden=1;


while($healthpointplayer[0]>0&&$healthpointplayer[1]>0)
{
$healthpointplayer[0]-=$dmgplayer2;
$healthpointplayer[1]-=$dmgplayer1;
echo "Runde $runden <br> ";
echo "Spieler1 wurde getroffen mit $dmgplayer2 Schadenspunkten von Spieler2
und hat noch $healthpointplayer[0] HP ";
echo "Spieler2 wurde getroffen mit $dmgplayer1 Schadenspunkten von Spieler1
und hat noch $healthpointplayer[1] HP ";
$runden++;
}


edit überbreite beseitigt

 
exsilence
15-09-2006, 16:04 
 
Danke für die ganzen Tipps :)
programmier noch nicht so lang.

Das soll einfach ein Projekt werden, wo ich viele neue Sachen kennen lern und aus meinen Fehlern lernen will - und das mache ich gerade! =)
Vielen dank

Aber was bewirkt das - ? subtrahiert der das dann direkt? oder wie darf ich das verstehen? :dontknow:

$healthpointplayer[0]-=$dmgplayer2;

 
3DMax
15-09-2006, 16:07 
 
Original geschrieben von exsilence
Aber was bewirkt das - ? subtrahiert der das dann direkt? oder wie darf ich das verstehen? :dontknow:
ich denke du möchtest etwas lernen? - probier's aus!

 
ArSeN
15-09-2006, 17:53 
 
$var -= 5;

Ist das gleiche wie

$var = $var - 5;

Nur kürzer - Programmierer sind faul ;)

 
Rolandbar
15-09-2006, 17:59 
 
es hat noch ein Bug, der die logik betrifft:
wenn jetzt spieler 1 beim spieler 2 schaden macht, und der spieler 2 dann keine lebenspunkte mehr hat, schiest er trozdem noch einmal zurück.
Erst wenn dan ein neuer Schleiffendurchgang kommt, wäre es vorbei.

 
exsilence
15-09-2006, 18:33 
 
Stimmt danke =)
Sollte man aber leicht mit einer if abfrage lösen können oder? ;-)

 
ArSeN
15-09-2006, 18:38 
 
Original geschrieben von exsilence
Sollte man aber leicht mit einer if abfrage lösen können oder? ;-)

Antwort: Ja! :p

 
3DMax
15-09-2006, 19:34 
 
Original geschrieben von Rolandbar
wenn jetzt spieler 1 beim spieler 2 schaden macht, und der spieler 2 dann keine lebenspunkte mehr hat, schiest er trozdem noch einmal zurück.
ne, umgekehrt - spieler 2 schlägt immer zuerst spieler 1.

ist eine ziemlich monotone angelegenheit. vielleicht könnte man für die spieler noch eine "geschwindigkeits-eigenschaft" einbauen. also wer schneller ist, hat eine höhere wahrscheinlichkeit für den erstschlag (zufallsgenerator).

ps: oh gott, jetzt befasse ich mich schon mit bg :D

 
exsilence
15-09-2006, 19:46 
 
Das sind alles supi Ideen :huep:
Vielen Dank!

Aber ich bin ein kleiner programmierer der von nix ne Ahnung hat^^ Umsetzung ist das Problem :(
Aber gebt ruhig weiter tipps ;)

Setze mich jetzt erstmal dran und versuch mit euren Tipps mal ein vernünftiges Scriptchen zum laufen zu kriegen.


Gruß
Die ehemalige Stille

 
3DMax
15-09-2006, 20:51 
 
Original geschrieben von exsilence
Aber gebt ruhig weiter tipps ;)
ok, du wolltest es ja nicht anders ;)
bei den spielern bietet sich oop an - jeder spieler hat eigenschaften und methoden.
ich hab's mal grob skizziert:

class Player
{
// Eigenschaften
private $name;
private $damage;
private $speed;

public function __construct($name, $damage, $speed)
{
$this->name=$name;
$this->damage=$damage;
$this->speed=$speed;
}

public function getName()
{
return $this->name;
}

public function getRandomDamage()
{
// todo: Zufallsfunktion implementieren
return $this->damage;
}

public function getRandomSpeed()
{
// todo: Zufallsfunktion implementieren
return $this->speed;
}
}

// Spieler1 erstellen (Werte kommen aus einer DB)
$p1=new Player('Berserker', 500, 30);

// Eigenschaften ausgeben - Zufallsmechanismus muss noch implementiert werden
echo 'Player: '.$p1->getName().'<br />';
echo 'Damage: '.$p1->getRandomDamage().'<br />';
echo 'Speed: '.$p1->getRandomSpeed().'<br />';

echo '-----------------------<br />';

// Spieler2 erstellen (Werte kommen aus einer DB)
$p2=new Player('Hummingbird', 10, 750);

// Eigenschaften ausgeben - Zufallsmechanismus muss noch implementiert werden
echo 'Player: '.$p2->getName().'<br />';
echo 'Damage: '.$p2->getRandomDamage().'<br />';
echo 'Speed: '.$p2->getRandomSpeed().'<br />';

 
3DMax
15-09-2006, 21:21 
 
achso, "health" habe ich noch vergessen.
das wäre noch eine wichtige eigenschaft und die bräuchte dann noch set- & get-methoden.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:48 Uhr.