Skip to content

Instantly share code, notes, and snippets.

View ennorehling's full-sized avatar

Enno Rehling ennorehling

View GitHub Profile
@ennorehling
ennorehling / test.cr
Created February 17, 2019 22:09
CR to JSON demonstration
VERSION 66
36;Basis
0 1 2;home
"UTF-8";charset
1;noskillpoints
PARTEI 1045107
"de";locale
8;age
PARTEI 683844
"de";locale
@ennorehling
ennorehling / test.json
Last active February 18, 2019 11:19
CR to JSON result
{
"Basis": 36,
"home": "0 1 2",
"charset": "UTF-8",
"noskillpoints": 1,
"PARTEI": [
{
"id": 1045107,
"locale": "de",
"age": 8
@ennorehling
ennorehling / crsample.json
Created June 30, 2019 17:25
Sample CR to JSON conversion
{
"charset": "UTF-8",
"locale": "de",
"noskillpoints": 1,
"date": 1509041527,
"Spiel": "Drachensgrab",
"Konfiguration": "Standard",
"Koordinaten": "Hex",
"max_units": 50,
"Basis": 36,
function test_rider_leads_horses()
local r0 = region.create(0, 0, "plain")
local r1 = region.create(1, 0, "plain")
local r2 = region.create(2, 0, "plain")
local r3 = region.create(3, 0, "plain")
local f = faction.create("human")
-- lead 1 extra horse per level while riding:
local u1 = unit.create(f, r0, 1)
u1:set_skill("riding", 1)
u1:add_item("horse", 2)
function test_bug_2605()
local r0 = region.create(0, 0, "plain")
local r1 = region.create(1, 0, "plain")
local r2 = region.create(2, 0, "plain")
local r3 = region.create(3, 0, "plain")
local f = faction.create("human")
-- 1. two walkers, each with two horses and a cart:
local u1 = unit.create(f, r0, 2)
u1:add_item("horse", 2)
u1:add_item("cart", 1)
function test_trolls_ride_carts()
local r0 = region.create(0, 0, "plain")
local r1 = region.create(1, 0, "plain")
local r2 = region.create(2, 0, "plain")
local r3 = region.create(3, 0, "plain")
local r4 = region.create(4, 0, "plain")
local f = faction.create("troll")
-- 1. 20 trolls can pull 5 loaded carts:
local u1 = unit.create(f, r0, 20)
u1:add_item("cart", 5)
require "lunit"
module("tests.e2.trees", package.seeall, lunit.testcase )
function setup()
eressea.game.reset()
eressea.settings.set("rules.food.flags", "4") -- food is free
eressea.settings.set("NewbieImmunity", "0")
end
local crs = require 'cr'
function log_error(str)
io.stderr:write(str)
end
local terrains = {
['Ozean'] = 'ocean',
['Gletscher'] = 'glacier',
['Eisberg'] = 'iceberg',
@ennorehling
ennorehling / kriegsgruende.md
Created May 11, 2021 16:54
Wir erklären Euch den Krieg wegen ...
  1. Errichtung eines Hafens an einem Binnensee
  2. irgendeinem an den Haaren herbeigezogenen Grund
  3. akkutem Wahnsinn
  4. der Tradition
  5. Allgemeine Reudigkeit ist definitiv ein guter Kriegsgrund!
  6. Benutzung des Kriegsgrund-Generators
  7. des Parteinamens Die Gummibärchen
  8. Ruhm und Ehre
  9. Wir sind nur Gäste auf einer grossen Grill-Party.
  10. dem falschen Magie
@ennorehling
ennorehling / encodings-erklaert.txt
Created April 1, 2022 17:48
Geschichte: Wie es zu dem Durcheinander mit den Encodings kam
Das mit den Kodierungen ist so:
Als die Welt nur 127 Zeichen hatte, war noch alles einfach. Wir haben in jedes Byte ein Zeichen kodiert, und die Zuordnung von numerischem Wert zu Zeichen wurde standardisiert: ASCII. Das A hat den Wert 65 bekommen, das B die 66, usw. Kleinbuchstaben fangen bei 97 an, Zahlen bei 48.
Irgendwann haben dann irgendwelche Europäer gemeint, es gäbe ja noch viel mehr Zeichen.
ANSI ist das, was den Europäern als Lösung eingefallen ist. Die haben einfach auf die 127 Zeichen nochmal 128 drauf gesetzt.
255 Zeichen sollten ja wohl genug sein.
Aber die Russen haben gemeint, sie seien vergessen worden, und haben auf die 127 Zeichen ihre eignen 128 drauf gesetzt. KOI8R hiess das.
Das heisst, wenn man eine 65 in seiner Datei hatte, wurde das jetzt bei Russen, Europäern und Amis als A angezeigt, aber wenn man eine 132 hat, ist das bei Amerikanern ungültig, bei (West-)Europäern ein ä, und bei Russen ... irgendwas kyrillisches.
Man musste also plötzlich wissen, welchem Standard die Datei folgt (E