Duell-Script BG

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Duell-Script BG

    Huhu Ihr,

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

    Ich weiß nicht wie ich das Duellscript realisieren soll

    an Variablen hab ich:



    PHP-Code:
    $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


    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.

    PHP-Code:
    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
    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
    Zuletzt geändert von exsilence; 15.09.2006, 16:02.

  • #2
    Hi,

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

    PHP-Code:
    $healthpointplayer array("$lebensenergieberechnen1""lebensenergieberechnen2"); 
    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      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

      Kommentar


      • #4
        da gabs noch mehrere fehler.
        was solls, mir war gerade langweilig

        PHP-Code:
        $healthpointplayer=array(35001600);
        $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
        Zuletzt geändert von 3DMax; 15.09.2006, 16:06.

        Kommentar


        • #5
          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?

          $healthpointplayer[0]-=$dmgplayer2;

          Kommentar


          • #6
            Original geschrieben von exsilence
            Aber was bewirkt das - ? subtrahiert der das dann direkt? oder wie darf ich das verstehen?
            ich denke du möchtest etwas lernen? - probier's aus!

            Kommentar


            • #7
              PHP-Code:
              $var -= 5
              Ist das gleiche wie

              PHP-Code:
              $var $var 5
              Nur kürzer - Programmierer sind faul
              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

              Kommentar


              • #8
                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.
                Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                Kommentar


                • #9
                  Stimmt danke =)
                  Sollte man aber leicht mit einer if abfrage lösen können oder? ;-)

                  Kommentar


                  • #10
                    Original geschrieben von exsilence
                    Sollte man aber leicht mit einer if abfrage lösen können oder? ;-)
                    Antwort: Ja!
                    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                    Kommentar


                    • #11
                      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
                      Zuletzt geändert von 3DMax; 15.09.2006, 19:37.

                      Kommentar


                      • #12
                        Das sind alles supi Ideen
                        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

                        Kommentar


                        • #13
                          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:
                          PHP-Code:
                          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'50030);

                          // 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'10750);

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

                          Kommentar


                          • #14
                            achso, "health" habe ich noch vergessen.
                            das wäre noch eine wichtige eigenschaft und die bräuchte dann noch set- & get-methoden.

                            Kommentar

                            Lädt...
                            X