+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 22

Thema: Kosten-Steigerung

  1. #1
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66

    Kosten-Steigerung

    Hallo Leute,

    Ich bin gerade dabei mein eigenes Browsergame zu scripten!

    Ich habe auch schon das grobe fertig! Nur jetzt häng ich fest...

    Wie viele andere Browsergames will ich auch, die Kosten der Gebäude steigen lassen...

    Das soll so aussehen:

    1 Gebäude= 100
    2 Gebäude= 110
    3 Gebäude= 121
    4 Gebäude= 133
    5 Gebäude= 146
    6 Gebäude= 160

    und so weiter, also immer +10%!

    Ich weiß nicht wie man das umsetzen soll...

    Berücksichtet werden muss:

    Der Grundpreis(aus der DB), die neue Anzahl(Formular), die bereits gebauten Gebäude (aus der DB) und halt die 10% oder auch *1,1

    Von einem anderen Programmierer habe ich schon erfahren, das das ganze erst mal in eine Schleife gesetzt werden muss, und das man das irgendwie mit "pow" (Potenzfunktion) macht.

    Ich weiß nicht wie ich die Formel aufstellen soll...

    Ich will jetzt nicht den ganzen Codeschnipsel dafür, wär zwa cool, aber brauch einfach ma eure Ideen wie man das machen sollte...

    HELP PLZ!

    Der N!tr0 (über Annalena's Nick)

  2. #2
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Holst die Anzahl der schon gebauten Gebäude eines Spielers und machst eine Zinses- Zinsrechnung mit 10 Prozent
    (Schlag mich jetzt tot, wie das noch mal genau ging, Zinsrechnung ist bei mir far to long her..)

    Edit: Hab was gefunden:

    Endkosten der Häuser:

    Grundkosten*(1+10%/100%)^2
    Geändert von Adromir (04.03.2005 um 18:13 Uhr)

  3. #3
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    hmm und dann???

    <?php

    $gebaute_geb = blabla ausser db...

    und dann?

    $zinsen = $gebaute_geb / 100 * 10 // 10% ^^

    ?>
    und was hab davon? kann jetz irgendwie nich weiter denken?!?!?!

  4. #4
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Dann hast du den Endpreis eines Neuen Hauses, wenn der Spieler vorher x Häuser gebaut hat.

  5. #5
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    ne hab ich nich....

    Angenommen

    der Spieler hat 5 Gebäude..

    5 / 100 = 0,05 * 10 = 0,5

    das is der neue preis? nenene

  6. #6
    Guest Strogij hilft, wo's geht Strogij hilft, wo's geht
    Registriert seit
    Aug 2002
    Beiträge
    2.233
    Dreisatz, Grundschule.
    Ich würde dafür einfach eine Funktion schreiben: (nicht optimiert, dafür verständlicher)
    PHP-Code:
    function endpreis($startpreis$prozente_erhoehung$anzahl)
        {
        
    // Ausnahme
        
    if ($prozente_erhoehung 0) return false;

        
    $ein_prozent $startpreis 100 $prozente_erhoehung;

        return 
    $ein_prozent $anzahl $startpreis;
        }

    // Für Startpreis 100, Erhöhung um 10% und 5 Häuser (oder was auch immer)
    echo endpreis(100105); 
    Optmierte Version:
    PHP-Code:
    function endpreis($startpreis$prozente_erhoehung$anzahl)
        {
        
    // Ausnahme
        
    if ($prozente_erhoehung 0) return false;

        return 
    $startpreis $startpreis $prozente_erhoehung 100 $anzahl;
        } 
    Geändert von Strogij (04.03.2005 um 18:39 Uhr) Grund: Optimierte Version hinzugefügt

  7. #7
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    Hmmm..irgendwie komm ich mit dem Script nicht klar..ich habe noch nie mit einer function gearbeitet..habe jetzt zwar nen bißchen drüber gelesen aber durchgestiegen bin ich noch nicht...

    also damit ihr euch mehr vorstellen könnt hab ich euch jetzt mal nen codeschipsel drann gehängt...

    PHP-Code:
    if (isset($_POST[$row[uid]]))                    //wenn absenden, dann...
      
    {
        if(
    $_POST['anzahl'] >= 1)                    //überprüfen ob eine positive zahl angegeben wurde
        
    {
        if(
    $data[$row[uid]][max] > $buildings2[count])        //überprüfen ob schon gebaut wird
          
    {
            
    $build mysql_query("SELECT Count(*) as count FROM user_builded where nickname= '".$_SESSION['username']."'");
            
    $build2 mysql_fetch_array($build);
            
            if(
    $build2[count] == 0)                            //wenn nicht, dann...
              
    {
                
    $count ="select anzahl_building from user_buildings where nickname = '".$_SESSION['username']."' and name_building = '".$row[name]."'";
                
    $count2 mysql_query($count);
                
    $count3 mysql_fetch_array($count2);        //bereits fertig gestellte gebäude

                
    $max $count3[anzahl_building] + $_POST['anzahl'];

                if(
    $count3[anzahl_building] < $row[max] && $max <= $row[max])        //überprüfen ob vllt die maximale anzahl überschritten wird
                  
    {
                    
    $kosten = array();
                    
                    
    $cost explode(";",$data[$row[uid]][cost]);                    //grundkosten
                    
    foreach($cost as $cost)
                    {
                      
    $array explode(":",$cost);
                      
                      
    $source "select holz, stein from user_ressources where nickname= '".$_SESSION['username']."'";
                      
    $source2 mysql_query($source);
                      
    $info mysql_fetch_array($source2);                            //resourcen
                      
                      
    if($array[0] == holz)
                        {
                          
    $gesamt $_POST['anzahl'] * $array[1];
                          
    $holz $info[holz] - $gesamt;
                          
                          if(
    $holz 0)                                                //holz-kosten
                            
    {
                              
    array_push($kosten"mistake");
                              
    array_push($kosten"Holz");
                            }
                        }
                        
                      if(
    $array[0] == stein)
                        {
                          
    $gesamt $_POST['anzahl'] * $array[1];
                          
    $stein $info[stein] - $gesamt;

                          if(
    $stein 0)                                            //stein-kosten
                            
    {
                              
    array_push($kosten"mistake");
                              
    array_push($kosten"Stein");
                            }
                        }
                    }
                    
                    if(
    $kosten[0] == mistake)
                      {
                        
    readfile ("fehler/keine-res.php");                            // zu wenig resourcen
                      
    }
                    else
                      {
                        
    readfile ("ok/ok.php");                                        //sonst bauen
                        
                        
    $datum date('U');
                        
    $bauzeit $datum $data[$row[uid]][zeit];
                        
                        
    $building_add "INSERT INTO user_builded (
                        nickname,
                        name_builded,
                        zeit,
                        anzahl_builded,
                        startzeit,
                        max,
                        genre,
                        uid,
                        type)
                        VALUES (
                        '"
    .$_SESSION['username']."',                                
                        '"
    .$data[$row[uid]][name]."',
                        '$bauzeit',
                        '"
    .$_POST['anzahl']."',
                        '$datum',
                        '"
    .$data[$row[uid]][max]."',
                        '"
    .$data[$row[uid]][genre]."',
                        '"
    .$data[$row[uid]][id]."',
                        'building')"
    ;

                        
    $building_add2 mysql_query($building_add);                        //bauvorgang eintragen
                        
                        
    $abzug = array();

                        
    $take explode(";",$data[$row[uid]][cost]);
                        
                        
    $source3 "select holz, stein from user_ressources where nickname = '".$_SESSION['username']."'";
                        
    $source4 mysql_query($source3);
                        
    $user mysql_fetch_array($source4);

                        foreach(
    $take as $take)
                        {
                          
    $cut explode(":",$take);

                          if(
    $cut[0] == holz)
                            {
                              
    $gesamt $_POST['anzahl'] * $cut[1];
                              
    $holz $user[holz] - $gesamt;

                              
    $update "update user_ressources set holz = '$holz' where nickname= '".$_SESSION['username']."'";
                              
    $update_add mysql_query($update);
                            }

                          if(
    $cut[0] == stein)                                                        //resourcen updaten
                            
    {
                              
    $gesamt $_POST['anzahl'] * $cut[1];
                              
    $stein $user[stein] - $gesamt;

                              
    $update "update user_ressources set stein = '$stein' where nickname = '".$_SESSION['username']."'";
                              
    $update_add mysql_query($update);
                            }                        
                        }
                      }
                  }
                else
                  {
                    
    readfile ("fehler/max-1.php");                                                //fehler
                  
    }
              }
            else
              {
                
    readfile ("fehler/zz-bauen.php");                                                //fehler
              
    }
          }
        else
          {
            
    readfile ("fehler/max-1.php");                                                        //fehler
          
    }
        }
        else
        {
          
    readfile ("fehler/formular-falsch.php");                                                //fehler
        
    }
      } 
    ich hoffe ihr könnt mir helfen...

    das muss unbedingt laufen, weil so das spiel verfuscht wird...da der user viel zu viele resourcen hat...

    gruß, N!tr02k5

  8. #8
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Du hast es doch am Anfang schon richtig gesagt:
    1. Haus 100
    2. Haus 100*1,1
    3. Haus 100*1,1*1,1
    4. Haus 100*1,1*1,1*1,1

    also Haus=100*1,1^AnzahlHäuser

    in PHP ist die Formel dann so umzusetzen

    $neuerpreis=100*pow(1.1,$hausanzahl);
    Geändert von steffenk (05.03.2005 um 01:28 Uhr)


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  9. #9
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    *lach*^^
    bestimmt jetzt 30 minuten nach dem "^" gesucht was das für ein rechenzeichen das ist und nix gefunden und wollte jetzt fragen...

    da seh ich das das pow ist...

    okay...jetzt frag ich mich nur noch wie sich php verhält..also der user baut meinetwegen 10 neue häuser

    wir dann auch sofort das ganze 10 mal ausgerechnet und kommen auch nach den 1ten haus was gebaut werden soll +10%??

    fragen über fragen^^


    @St@eff.en: stöber gerade den mysqldumper duch^^

    @all wenn ich/wir hier die lösung dafür finden und das funzt, dann spende ich erstmal was!

    N!tr0

  10. #10
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    die Formel funktioniert genau so, Du kannst das gerne am Taschenrechner prüfen.

    Beim 1.Haus ist AnzahlHäuser 0 => 1,1^0=1; also Kosten 100

    Hat man 4 Häuser, kostet das 5.Haus 100*1,1^4=146,41

    Wenn Du nur glatte Zahlen willst, musst Du das imt round runden.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  11. #11
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    ja das ist alles soweit klar...


    aber der wenn der benutzer 10 häuser bauen will...

    dann is die formel aber noch nicht richtig..mit der formel rechnet man nur das letzte gebäude aus, oder irre ich mich?

    das muss dann doch noch in eine schleife und so oft wiederholt werden wieviele er baut..und das ganze addiert ergibt dann den preis für 10 häuser...


    also ne while schleife...die so oft durchlaufen lassen, wieviele der user baut, also bei 10 10mal...


    und dann soll der die gesamte anzahl um 1 erhöhen, sodass er dann bei dem 2ten durchgang das 2te haus ausrechnet...


    ODER???

  12. #12
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    achso meinst Du das
    Wenn Du pro Kaufaktion rechnest, brauchst Du dafür eine weiter Variabel.

    Aber das versteh ich nicht - dann gehts also um die Anzahl der Kaufaktionen und nicht um die Anzahl der Häuser.

    Dann müssten auch 10 Häuser alle gleichviel kosten, da es in einer Aktion geschieht.

    Da musst Du die Regel erst mal klar definieren, dann kann man auch die passende Formel entwerfen


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  13. #13
    TP-Member Annalena macht alles soweit korrekt
    Registriert seit
    Jan 2004
    Beiträge
    66
    ALSO:::


    der Spieler hat dann das Formular vor sich und gibt ein wieviele Gebäude er davon errichten will...er kann soviele bauen, bis er keine resourcen hat..

    bleiben wir mal bei dem beispiel wenn er dann 10 häuser baut.

    erstmal werden dann die häuser die er schon vorher gebaut hat geholt....weil diese auf jeden fall in dem pow-befehl vorkommen müssen

    dann soll er halt ausrechnen wie viel das erste von seinen 10, die er bauen will, das geschieht ja mit dem pow befehl, also:

    PHP-Code:
    $hausanzahl $bereits_gebaute_häuser 1;
    $haus 100 pow(1.1,$hausanzahl); 
    das wäre die formel für das erste haus, nur das allein ist ja noch nich vollständig, weil er ja 10 will und nicht 1!

    also muss das in eine schleife, die den befehl 10 ausführt...aber dabei $hausanzahl jedesmal um 1 erhöht..is ja kla, ne? is dann das zweite haus.. :-)

    und das halt 10mal..

    dabei muss er aber den preis des ersten hauses + den preis des zweiten hauses + den preis des dritten hauses + ... + den preis des zehnten hauses,

    das ergibt dann die gesamt kosten für den bauauftrag von 10 gebäuden...


    ich hoffe es ist jetzt klar...ist für mich auch schwer zu erklären^^

  14. #14
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Gut.
    1. Damit die Formel stimmt, darh die Hausanzahl erst hinterher erhöht werden.

    Ok, dann die Umsetzung:

    PHP-Code:
    $kaufanzahl=10// als Beispiel
    $kaufpreis=0// initialisieren
    for($i=0;$i<$kaufanzahl;$i++) {
       
    $kaufpreis += 100 pow(1.1,$hausanzahl++); 

    Geändert von steffenk (05.03.2005 um 13:15 Uhr)


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  15. #15
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Das würde ich dann, wie du schon gesagt hast, mit einer Schleife machen:

    $häuseranzahl=10

    $preis=array();
    for($x=1;$x<$häuseranzahl+1;$x++) {
    $preishaus= 100 * pow(1.1,$x);
    array_push($array, $preishaus);
    }
    $endbetrag=array_sum($array)

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Kosten Firmen-Fahrzeug
    Von ElectricFee im Forum Archiv
    Antworten: 0
    Letzter Beitrag: 04.07.2004, 11:44
  2. Welche Kosten für Einkommensteuer?
    Von best-star im Forum Steuer & Buchführung
    Antworten: 1
    Letzter Beitrag: 04.06.2004, 16:28
  3. Anrechenbare Kosten
    Von Desty im Forum Archiv
    Antworten: 6
    Letzter Beitrag: 25.03.2004, 19:01

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51