FANDOM


Im Internet oder auch in den verschiedenen Stores (Apple, Google) gibt es eine Vielzahl von GEMS/Juwelen Berechnungen. Da man nicht immer weiß, ob die Berechnungen richtig sind, hab ich mich entschlossen selbst etwas zu schreiben.

Vorteil:

Gems calc

Layout

  • das Programm ist aktuell
  • das Programm ist klein
  • kann in jede Webseite eingebunden werden
  • ein Modul für Joomla zum Download gibt es auf Anfrage (Zip Datei - zur manuellen installation, CSS müsst ihr selber anpassen)
  • das Teil sieht meiner Meinung nach chic aus!
  • eigene Anpassungen via CSS

Zusammenfassung:

Es gibt für die Berechnung keine einheitliche Funktion. Es muss für einzelne Bereiche jeweils gesondert eine Berechnung ausgeführt werden.

Intervallweise lineare Funktion

Bei intervallweise linearen Funktionen handelt es sich um zusammengesetzte lineare Teil-Funktionen, die innerhalb eines definieren Intervalls (Anfangspunkt, Endpunkt) linear sind, die aber an den Intervallgrenzen Spitzen / Knicke oder Sprungstellen haben. Intervallweise lineare Funktionen haben keinen durchgängigen sondern einen auf Intervalle eingeschränkten Definitionsbereich.

Die Grundlage ist folgender Code (hier beispielhaft für Gold und Elixier):

function doCalcResGold (resources) {
   var ranges = [100,1000,10000,100000,1000000,10000000];
   var gems = [1,5,25,125,600,3000];
   var storagemax = 8001000;
   if (isNaN(resources)) return("???");
   if (resources < 0) return("???");
   else if (resources == 0) return(0);
   else if (resources <= ranges[0]) return(gems[0]);
    for (var i = 1; i < ranges.length-1; i++)
      if (resources <= ranges[i]) 
         return(Math.round((resources - ranges[i-1])/((ranges[i] - ranges[i-1])/(gems[i] - gems[i-1])) + gems[i-1]));
    if (resources <= storagemax)
      return(Math.round((resources - ranges[ranges.length-2])/((ranges[ranges.length-1] - ranges[ranges.length-2])/(gems[gems.length-1] - gems[gems.length-2])) + gems[gems.length-2]));           
   else 
      return(doCalcResGold(resources % storagemax) + Math.floor(resources/storagemax)*doCalcResGold(storagemax));
    return("???");
}

Zuerst erfolgt eine Fehlerprüfung auf Inhalte und negative Werte. Dann wird mittels einer Schleife (for) geprüft in welchem Bereich die Eingabe liegt. Wenn die Eingabe in einem gültigen Bereich liegt erfolgt die eigentliche Berechnung.

Evtl. Ungenauigkeiten ergeben sich durch Runden, insbesondere bei der Umrechnung von GEMS in EURO. Die Berechnung der benötigten Euro ist nur ein theoretischer Wert, da sich GEMS-genaue Pakete nicht so kaufen lassen.

Bei Fragen bitte melden.

Takonka 16:12, 20. Feb. 2017 (UTC)

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.

Auch bei FANDOM

Zufälliges Wiki