Autor |
Nachricht |
< Geld |
|
Verfasst am:
Di, 24 Feb 2004 - 17:49
|
|
|
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 |
|
|
|
|
|
Verfasst am:
Mi, 25 Feb 2004 - 10:07
|
|
|
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. |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 20:27
|
|
|
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 ;) |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 23:27
|
|
|
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. |
|
|
|
|
|
|
Alle Zeiten sind GMT + 1 Stunde (MEZ) |
|
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.
|
|