Forum moved to if-forum.org
Autor Nachricht
<  Geld
Paycheck
BeitragVerfasst am: Di, 24 Feb 2004 - 17:49  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 07.01.2004
Beiträge: 9
Wohnort: Köln

Wie implementiere ich am besten so etwas wie geld dessen menge abnehmen und zunehmen kann...

Bespielsweise der Spieler verkauft seine Jacke und bekommt dafür 30 Euro
Bei der nächsten Frittenbude kauft er sich für 2 Euro eine Portion Fritten. die ihm natürlich sofort abgezogen werden...

Gibt es dafür eine Möglichkeit ?

Vielen dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Martin
BeitragVerfasst am: Mi, 25 Feb 2004 - 10:07  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Zu diesem Problem gibt es verschiedene Lösungsansätze, von relativ einfach bis hin zu sehr komplex. Die Guru-Aufgabe, in der ein (zugegeben recht komplexes) System von Geld implementiert werden sollte, blieb ungelöst.

Ich würde zunächst einen pragmatischen Ansatz wählen. Der Spieler hat ein Objekt Bargeld, das er mit sich herumträgt. Die Verben beschränken sich auf 'kaufe dies' und 'verkaufe jenes', man kann nicht sagen 'gib dem Junkie einen Euro'. Genausowenig ist es wichtig, wie das Geld zusammengesetzt ist, man kann nicht Pfennige als Schraubenzieherersatz hernehmen oder Geldscheine zu Kranichen falten.

Achtung, Brainstorming, kein geprüfter Code, Korrektur und Erweiterung sind dem Autor überlassen:

Code:

Integer Cash = 1287
! Der Spieler fängt mit 12,87 Euro an

Integer Preis
Flagge Handel_erfolgreich
! Hilfsvariablen

Aktion zähle_Geld
Ausf
    lokal x
    lösche x
    wenn (Cash > 99) dann
        sei Preis Cash
        div Preis 100
        setze x
        wenn (Preis > zwanzig) dann
            text '[Preis] Euro'
        sonst
            text '[num Preis] Euro'
        Ende
    Ende
    sei Preis Cash
    mod Preis 100
    wenn (Preis) dann
        wenn (x) text ' und '
        wenn (Preis > zwanzig) dann
            text '[Preis] Cent'
        sonst
            text '[num Preis] Cent'
        Ende
    Ende
EndeAusf

Aktion kaufe
Ausf
    lösche Handel_erfolgreich
    wenn (Preis < 0) stop
    wenn (Preis > Cash)
        stop 'Soviel Geld hast du nicht.'
    dekr Cash Preis
    wenn /(Cash) ObjNach Bargeld Nirwana
    setze Handel_erfolgreich
EndeAusf

Aktion verkaufe
Ausf
    lösche Handel_erfolgreich
    wenn (Preis < 0) stop
    inkr Cash Preis
    wenn /(Bargeld beimir) ObjNach Bargeld beimir
    setze Handel_erfolgreich
EndeAusf

Obj Bargeld
Name Ausf
    wenn (aBef = Inventar) dann
        ObjGenus selbst n %eigenname
        Text '[zähle_Geld] Bargeld'
    sonst
        ObjGenus selbst n
        Text 'Geld/'
    Ende
EndeAusf
Ort Beimir
Vor 'bar' 'klein' 'hart'
Subst 'geld' n, 'euro' m, 'euro' p, 'euros' p, 'cent' m,
    'cent' p, 'cents' p, 'cash' n, 'knete' f
Besch 'Das ist das, was dir zum Leben bleibt: [zähle_Geld]'
VorAusf
    (zählen)
        Ausf untersuchen selbst
    (hinlegen hineinlegen darauflegen)
        stop 'Nein, das Geld kannst du noch gut gebrauchen.'
EndeAusf


Nun kann man mit diesem Geld Handel treiben:

Code:

    Obj fettige_Fritten
    Name 'fettig^ Fritten' p
    Subst 'pommes' p, 'fritten' p, 'frites' p
    VorAusf
        (kaufen)
            sei Preis 230
            Ausf kaufe
            wenn (Handel_erfolgreich) dann
                'Zwei Euro dreißig und ein Schälchen Fritten
                wechseln den Besitzer.'
                ObjNach selbst beimir
            EndeAusf
    EndeAusf
   
    ...
   
    Obj Fünfziger
    Name '50-Cent-Stück' n
    Vor '50-cent', '50', '50er', 'cent'
    Subst 'münze' f, 'stück' n, 'geldstück' n,
        'fünfziger' m
    Erst 'Auf dem Gehweg liegt ein 50-Cent-Stück.'
    Ort Hauptstraße
    VorAusf
        (nehmen)
            'Du hebst das 50-Cent-Stück auf und steckst
            es ein.'
            sei Preis 50
            Ausf verkaufe
    EndeAusf


Du kannst natürlich auch dem Junkie Geld geben, die Menge ist aber immer vom Spiel festgelegt. (Das ist ntaürlich eine Bevormundung des Spielers, vielleicht könnte man einen Euro als Standard-Menge festlegen.)

Unter Hirschen benutzt übrigens ein Geldsystem, in dem man ganze Euros ausgeben und sogar der Dame an der Kasse ein Trinkgeld zukommen lassen kann.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Paycheck
BeitragVerfasst am: Sa, 6 März 2004 - 20:27  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 07.01.2004
Beiträge: 9
Wohnort: Köln

Danke Martin... so hatte ich mir das vorgestellt.... Ich werde es mal testen und anpassen. Aber ich denke das schaut ganz ok aus ;)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Martin
BeitragVerfasst am: Sa, 6 März 2004 - 23:27  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Das oben (mit noch einigen dicken Bugs, darunter solche Klöpse wie "Preis > zwanzig") beschriebene Geld-Modell ist jetzt auch als Modul erhältlich:

http://www.martin-oehm.de/tag/geld.zip

Beim Programmieren muss man allerdings immer noch auf einige Dinge achten, vor allem, die Stop-Anweisungen zu setzen und die verkauften bzw. gefundenen Objekte verschwinden zu lassen.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  T.A.G.

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05