FreewarWiki:Bot/Skripts/chara funktionstabelle.php

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
Dieses Script ist hier lediglich archiviert und nicht direkt lauffähig. Wenn Du es benutzen möchtest, musst Du es lokal abspeichern und mit einem geeigneten Interpreter ausführen lassen. Zum Übernehmen solltest Du nicht den unten angezeigten Text verwenden, sondern den Quelltext des Wiki-Artikels: Dazu wählst Du Bearbeiten und kopierst den (meist zwischen PRE-Tags eingefassten) Scripttext.

Sofern Du die Scripte dauerhaft lokal abgespeichert hältst, solltest Du sie vor der nächsten Ausführung darauf prüfen, ob sie noch aktuell sind.

Letzter Bearbeiter: GalakBot — Zuletzt bearbeitet: 26.04.2016
<?php
header('Content-Type: text/plain; charset=utf-8;');
error_reporting(E_ALL ^ E_NOTICE);

/* Gerüst
[
    [
        // Überschrift Spaltenübergreifen
        'caption' => '',
        // Zeilenkopf
        'row_head' => '',
        // Funktion die den Wert für die Spalten berechnet
        'callback' => function ($stufe) {

        }
    ]
];//*/

$tables = [
    //* Effizienz Phasenenergiespeicher
    [
        // Überschrift Spaltenübergreifen
        'caption' => 'Effizienz Speichervorgang',
        // Zeilenkopf
        'row_head' => '[Prozent]',
        // Funktion die den Wert für die Spalten berechnet
        'callback' => function ($stufe) {
            if ($stufe === 90) {
                $col = 100;
            } else {
                $col = 60 * pow(1.005, $stufe);
            }

            // abrunden mit präzision
            return round($col, 1, PHP_ROUND_HALF_DOWN);
        }
    ],//*/
    //* Maximale Kapazität Phasenenergiespeicher
    [
        // Überschrift Spaltenübergreifen
        'caption' => 'Maximale Speicherkapazität',
        // Zeilenkopf
        'row_head' => '[PE]',
        // Funktion die den Wert für die Spalten berechnet
        'callback' => function ($stufe) {
            if ($stufe === 90) {
                $col = 100000;
            } else {
                $col = 10000 * pow(1.025, $stufe);
            }

            // tausendertrennpunkte
            return number_format($col, 0, ',', '.');
        }

    ],//*/
];

// Maximalstufe
$max_stage = 90;

// alle X Stufen
$pitch = 5;

// in X Zeilen aufteilen 
// z.B. wenn alle 5 Stufen über 100 Stufen in 2 Zeilen
$chunks = 2;

// ab hier nur verändern wenn Funktionsweise des Skriptes bekannt

// Stufen pro Zeile
$chunk_size = $max_stage / $chunks;

// Tabellenkopf
echo "{{{!}} class=\"wikitable\"\n";

foreach ($tables as $table) {
    // Bodykopf
    echo "{{!}}-\n{{!}}\n{{!}}colspan=\"" . ($chunk_size / $pitch) . "\" align=\"center\" bgcolor=#FFFFCC{{!}}'''{$table['caption']}'''\n";

    // in X Zeilen aufteilen 
    for ($chunk = 0; $chunk < $chunks; ++$chunk) {
        // Stufenkopf
        echo "{{!}}-\n!bgcolor=#FFEECB{{!}}Stufe\n";

        for ($stage = $pitch + $chunk_size * $chunk; $stage <= $chunk_size * ($chunk + 1); $stage += $pitch) {
            echo "!bgcolor=#FFFFCC{{!}}$stage\n";
        }

        // Zeilenkopf
        echo "{{!}}-\n{{!}}bgcolor=#FFFFCC{{!}}'''{$table['row_head']}'''\n";

        // Wertausgabe
        for ($stage = $pitch + $chunk_size * $chunk; $stage <= $chunk_size * ($chunk + 1); $stage += $pitch) {
            if (($stage / $pitch + 1) % 2) {
                echo "{{!}}bgcolor=\"#FFEECB\"";
            }

            echo "{{!}}" . $table['callback']($stage) . "\n";
        }
    }
}

// Tabelle schließen
echo "{{!}}}";