Wiederholungs Probleme
Übersicht

![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
es ist klar das es kürzer ist aber so habe ich die Option die preise schnell zu ändern anstatt immer viel überlegen zu müssen. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Sache mit dem Array wie ich es schonmal vorschlug ist nichts?
Code: [AUSKLAPPEN] upgrade_kosten(0)=25
upgrade_kosten(1)=50 upgrade_kosten(2)=100 upgrade_kosten(3)=250 goldmine=goldmine-upgrade_kosten(level) Flexibel, einfach, kurz. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Raiden93 hat Folgendes geschrieben: es ist klar das es kürzer ist aber so habe ich die Option die preise schnell zu ändern anstatt immer viel überlegen zu müssen.
Tja, das tolle am Programmieren ist ja gerade, dass man üblerlegen muss, oder? ![]() So, dann mach mal die Mine Level 1-1200. Viel Spaß beim Tippen. ![]() Die Formel hat auch den Vorteil, dass die Kosten für's nächste Level für den Spieler planbar sind. Spiel ein wenig mit der Formel rum und du wirst sehen wie sie sich bei Änderung der Werte verhält. Wenn dir das aber schon zu viel ist, sehe ich für deine Zukunft beim Programmieren schwarz (ATan2 ![]() MFG |
||
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich werde erstmal das mit dem array nehmen aber werde mich auch mal mit der formel beschäftigen | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@starwar
jetzt wird aber aber persönlich ![]() Ich war neulich beim Frauenhofer Institut zu Besuch zum Thema "Song-Erkennung" und die haben dort 12.000.000 Songvarianten lieber einzeln abgespeichert und vergleichen einen Testsong mit allen 12.000.000, als zu versuchen mit einem Algorhythmus die Ähnlichkeit zweier Songs zu beweisen. Und Sibelius Notensatz setzt auf über 13.000 Spezial-Ausnahme-Reglen für ihr Notensatzprogramm, statt einen Algo zu finden der alles abdeckt. Alle doof, oder was? @Raiden93 mach so weiter, wie du es geplant hast. Eine Liste ist für deine Zwecke die geschickteste Lösung. |
||
- Zuletzt bearbeitet von Midimaster am So, Apr 11, 2010 13:47, insgesamt einmal bearbeitet
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das lustige an allem ist ja das ich eigendlich hauptsächlich nur wissen wollte ob ich das Gold über eine FUnction abziehen sollte da es bei Case 2 ins unendliche abzieht. | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also das Risiko eingehend hier die Klappe n bisserl zu weit aufzureißen aber die Formel ist und bleibt die beste und einfachste Lösung für genau dieses Problem.
Ich kenne mich mit Audioprogrammierung nicht so gut aus aber denk mir halt mal dass dort soooo viele Faktoren mitspielen dass bis jetzt einfach noch niemand den Aufwand eingegangen ist da ne allgemein gültige Vorschrift aufzustellen. Wie dem auch sei... so ansteigende Kosten macht man mit ner simplen einzeiligen Formel. Ich gehe sogar so weit, in einigen Fällen das Spieldesign etwas einzuschränen dass es für mich einfacher zu programmieren ist. Mal ehrlich... würdest du wirklich um in Level 31 abweichende Werte bieten zu können 31 mal Copy & Paste machen und dann die Werte überall manuell anpassen? Und sollte das uuuuunbedingt nötig sein dann macht man die Formel und danach halt für ein oder 2 Sonderfälle extra If's... mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Midimaster:
BlitzBasic: [AUSKLAPPEN] goldabzug=25*2^(Goldminelvl-1)+Int(goldminelvl*0.15)*50*(Goldminelvl<31) |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Damit dir das Gold beim Wechsel von Level 1 nach Level 2 nur 1x abgezogen wird, brauchst Du einen Codeabschnitt, der weiss, dass er eben schon einmal aufgerufen wurde. Immer wenn Du das Level wechselst, stellt Du eine Variable LevelIstFertig% auf 1. Dadurch kann dann die Abzugs-Routine betreten werden, die sofort LevelIstFertig% wieder auf 0 zurücksetzt:
BlitzBasic: [AUSKLAPPEN] If LevelIstFertig=1 Then ...dabei spielt es keine Rolle, ob Du die aktuellen Goldkosten in einer Variable aktGold% oder in einem Array upgrade_kosten(aktLevel) verwendest. Beides ist vergleichbar gut. |
||
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Midimaster hast mir gut geholfen jetzt Frage ich mich nur noch wie eich mache das wenn ich die Ressorcen nicht habe auch keine Upgrades machen kann.
mein code. Code: [AUSKLAPPEN] If LevelFertig=1 Then aktLevel = aktLevel+1 Gold=Gold-aktGold Holz=Holz-aktHolz Stein=Stein-aktStein Select aktLevel Case 2 aktGold = 50 aktStein = 50 aktHolz = 50 Goldminelvl = 2 Case 3 aktGold = 100 aktStein = 100 aktHolz = 100 Goldminelvl = 3 End Select LevelFertig=0 EndIf |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
[EDIT]Dieser Thread wurde vor den Vorgänger angelegt und bezieht sich nicht darauf.[/EDIT]
Das war absolut nicht persönlich gemeint, Midi. Es war eher darauf bezogen, dass die Lösung mit der Formel mir an dieser Stelle sehr sinnvoll erscheint. Raiden (bitte nicht persönlich nehmen, es kann ja auch sein, dass ich falsch liege) hat auf mich den Eindruck gehabt: "Das sieht kompliziert aus, also lass ich es" und das ist ja nicht das Wahre. Man sieht in deinem Code schon "..." und das inst ein Problem. Der Code ist sehr starr und unflexibel. Die Formel bietet da schon Vorteile. Wenn man Ausnahmen festlegen möchte: Code: [AUSKLAPPEN] kosten = formel
If (lvl < 10) Then kosten=kosten/2 ;Kleine Minen kosten nur die Hälfte Endif Oder Über Select-Case-Default. MFG |
||
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hää ich lese daraus das alles was unter lvl 10 ist das die kosten halbiert werden oder? | ||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
(Ich erlaube mir mal den Doppelpost, wenn er nicht gewünscht ist dann darf er gerne Zusammengefasst werden. Oder PN an micht ![]() So, meine Idee (mit Select, hat Überwindung gekostet ![]() BlitzBasic: [AUSKLAPPEN] gold=2 EDIT zu Raidens Bemerkung: Ja, das war als Beispiel gedacht wie man bei der Formel Ausnahmen implementieren kann. |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Raiden93:
Wenn du dir den Code anschaust, verstehst du vielleicht, wie ich es meine: BlitzBasic: [AUSKLAPPEN] Graphics 400,300,0,2 (Der Preis steht in einem quadratischen Zusammenhang zum Minenlevel - Mit jedem Minenlevel bekommt man das x-fache an Holz dazu) Die Formel habe ich in einer Funktion gespeichert, da ich sie damit immer nur einmal überarbeiten muss. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: jetzt Frage ich mich nur noch wie eich mache das wenn ich die Ressorcen nicht habe auch keine Upgrades machen kann.
das hab ich jetzt nicht verstanden... was willst du damit sagen? Ist das eine Code-technische Frage, oder fragst du nur, wie man im Spiel soetwas wie "neues Gold kaufen" einbauen könnte? |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: jetzt Frage ich mich nur noch wie eich mache das wenn ich die Ressorcen nicht habe auch keine Upgrades machen kann.
Ich glaube das sollte eigentlich so lauten: Zitat: Jetzt frage ich mich nur noch, wie ich es mache, dass wenn ich nicht genügend Ressourcen habe auch keine Upgrades kaufen kann.
|
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group