Webtechnologien Wintersemester 2024

6. Aufgabe – JavaScript

Abgabe 23. Januar Punkte 5 – 8

Starthilfe

Es gibt wie immer eine Hilfeseite zu JavaScript und unter github.com/HTW-Webtech/Products-JS finden Sie eine kleine (reduzierte) Umsetzung der Splendr-Seite als Einstieg.

Abgabe

Pushen Sie Ihren Code wie immer in’s Git-Repo und laden Sie ihn, wenn Sie möchten, auch auf Ihre Studi-Seite. Andernfalls kann ich ihn auch lokal laufen lassen.

Aufgaben

Sie haben die Wahl zwischen einer der folgenden Aufgaben:

Wifi Connection Sheet – 5 Punkte

Ein Muss für jede WG: Entwickeln Sie eine Anwendung, die aus den Zugangsdaten eines WLANs ein Übersichtsblatt mit jenen Daten und einem QR-Code erstellt. Durch das Scannen des Codes soll sich beispielsweise ein Mobiltelefon direkt einwählen können.

Mockup

Konkrete Anforderungen

Zum Generieren des QR-Codes gibt es schon Lösungen, beispielsweise den JS-HTML5-QRCode-Generator. Zudem können Sie über ein Print Style Sheet leicht bewirken, dass sich die Druckansicht von der Darstellung im Browser unterscheidet.

Das Schema für den QR-Code lautet wie folgt (T, P und H sind optional):

WIFI:S:<SSID>;T:<WEP | WPA>;P:<PASSWORD>;H:<HIDDEN ? true : false>;;

Türme von Hanoi – 6 Punkte

Entwickeln Sie eine Anwendung, in der die Türme von Hanoi bei variabler Scheibenanzahl visuell gelöst werden.

Mockup

Konkrete Anforderungen

Damit Sie nicht mühsam nach dem Algorithmus suchen müssen:

var hanoi = function(disc, src, aux, dst) {
  if (disc > 0) {
    hanoi(disc - 1, src, dst, aux);
    console.log('Disc', disc, 'from', src, 'to', dst);
    hanoi(disc - 1, aux, src, dst);
  }
};

hanoi(3, 'Anfang', 'Mitte', 'Ziel');

Pi – 7 Punkte

Entwickeln Sie eine Anwendung zur Visualisierung einer probabilistischen Berechnung der Zahl π.

Verwenden Sie dazu den Monte-Carlo-Algorithmus. (Beachten Sie dabei, dass dieser nur zufällig gut funktioniert! *zwinker zwinker*)

Mockup

Konkrete Anforderungen

Waldbrand-Simulation – 8 Punkte

Entwickeln Sie eine Anwendung zur Simulation eines Waldbrandes mit variabler Anzahl an Bäumen und Brandherden.

Ein Wald ist eine Matrix frei wählbarer Größe die aus Bäumen und Gras besteht. Feuer kann sich nur von Baum zu Baum und unter direkten Nachbarn ausbreiten. Bäume haben eine gewisse Feuchtigkeit, die durch die Hitze brennender Nachbarbäume gesenkt wird. Nur trockene Bäume können entzündet werden. Ein Baum brennt eine gewisse Zeit, bis er verlischt.

Mockup

(Nicky Case hat einen wunderbaren Artikel darüber geschrieben, der die Aufgabe anschaulicher macht.)

Konkrete Anforderungen

Sie können das Ganze rundenbasiert umsetzen – Bäume haben dabei Lebenspunkte, die pro Runde neu berechnet werden und den aktuellen Zustand des Baums definieren.

Wer möchte, kann sich zur Generierung einer realistischeren Bewaldung mit dem Perlin-Noise-Algorithmus beschäftigen. JavaScript-Implementierungen finden sich einige auf GitHub.