Carstens Weblog

Apple-User. Nerd. Gamer. Born 336ppm

[15:25] Den Haag: ⛅️ Leicht Bewölkt, +8°C(+4°C), ↓26km/h

Da ich bald einige Dinge in C# programmieren soll, habe ich begonnen, mich durch die Tutorials bei Microsoft zu klicken und mir die Tutorial und Video Serie zu .NET anzusehen.

Eine Programmiersprache lernt man jedoch am besten, indem man Dinge programmiert. Und da ich ein Fan von Roguelike-Games bin, habe ich mir gedacht, ich suche mir eine Console-Library und ein Tutorial dazu. Es gibt ein hervorragendes Tutorial von Trystan zu einem Roguelike in Java. Also muss es doch auch eines für C# geben. Und ja, das gibt es, genauer gesagt gab es. Leider hat der Autor von ansiware.com es im Januar 2023 gelöscht! Schade, denn auch wenn es nicht mehr aktuell war, so finde ich doch die Konzepte und Texte dazu ziemlich hilfreich.

Da ich so schnell aber nicht aufgeben wollte, habe ich mich kurzerhand auf die Suche nach gespeicherten Versionen gemacht. Google und Bing waren da sehr hilfreich, denn im Internet-Archive ist die Seite leider geblockt. Warum auch immer ¯\_(ツ)_/¯. Mit Google und Bing war es jedoch möglich, alle 16 Teile des Tutorials zu sichern. Doch nicht nur die Texte habe ich sichern können, die Links zu den Source-Code-Archiven funktionierten noch und so konnte ich auch diese Dateien sichern. Hinzu kommt, dass der Nutzer VGA256 so nett war, mir auf Mastodon zu antworten und alle Archive zum Download bereit gestellt hat.

Die gespeicherte Seite aus dem Cache habe ich mit dem Firefox Add-on MarkDownload als Markdown-Datei gespeichert. Das Schöne an dem Add-on ist, dass es unnötiges Zeug wegwirft und sich auf den Kerntext der Webseite konzentriert. Das hat es mir erspart, die Google und Bing Cache Hinweise nachträglich zu entfernen.

Nachdem ich alle 16 Teile auf dem Rechner habe ich diesen eine passende Überschrift mithilfe eines kleinen Scripts verpasst:

import os

input_directory = "./markdown_files"

for filename in os.listdir(input_directory):
    if filename.endswith(".md"):
        input_file = os.path.join(input_directory, filename)
        with open(input_file, "r") as f:
            contents = f.read()
        with open(input_file, "w") as f:
            f.write("# " + filename + "\n\n" + contents)

Mithilfe von mdpdf zu einer PDF-Datei zusammengefasst.

~/SadConsoleRLTutorial
❯ mdpdf -o combined.pdf *.md
Logging to /Users/user/SadConsoleRLTutorial/mdpdf.log
Tutorial Part 01 Preface and Hello World.md
Tutorial Part 02 Player Creation and Display.md
Tutorial Part 03 Movement and Keyboard Input.md
Tutorial Part 04 Create a Room.md
Tutorial Part 05 Actors and Tiles.md
Tutorial Part 06 Create a Map and Map Generator.md
Tutorial Part 07 Tunnels and ViewPort.md
Tutorial Part 08 User Interface Manager.md
Tutorial Part 09 Message Log (SadConsole v8)(1).md
Tutorial Part 10 Command Manager (SadConsole v8).md
Tutorial Part 11 Enemy Entities, Combat & GoRogue Integration.md
Tutorial Part 12 Inventory Management & Loot Drops (SadConsole v8).md
Tutorial Part 13 Door Generation (SadConsole v8).md
Tutorial Part 14 Open Sesame (SadConsole v8).md
Tutorial Part 15 Theme Colours and Maintenance (SadConsole v8).md
Tutorial Part 16 The Long Road to Mount Doom (SadConsole v9).md

Pandoc wäre auch eine Möglichkeit gewesen, doch dafür hätte ich erst eine 5 GB große ~LaTeX Installation durchführen müssen.

Nun habe ich ein schönes PDF, dass ich mir hoffentlich im Urlaub schon einmal durchlesen kann.