Hilfe zur einfachen Grafik für Rucksack

Für den Benutzer von <grafik-fuer-rucksack.scm> ist die Schnttstelle von besonderer Bedeutung. Das Programm stellt -neben einem Muster - Rucksack, der "mein-rucksack" heißt - drei Funktionen bereit:

  1. eine Funktion erzeuge-rucksack, mit deren Aufruf ein Objekt vom Typ Rucksack erzeugt werden kann
  2. eine Funktion zeige-rucksack, mit der ein Objekt vom Typ Rucksack grafisch dargestellt werden kann
  3. eine Funktion Eingabe-Schleife, mit der diese Grafik "per Hand" ausgetestet werden kann.
  4. die Hilfsfunktion warte, die bei aktivem Grafikfenster auf einen Tastendruck wartet.

Zu 1:
Ein Objekt vom Typ rucksack, wie es von erzeuge-rucksack geliefert wird, stellt die Methoden
- fuege-hinzu
- entferne
- zeige
- zeige-groesse und
- zeige-laenge
bereit. Sie dienen zum Verwalten und Ausgeben des Rucksackinhaltes und des Fassungsvermögens.

Ein Objekt vom Typ Rucksack kann auf zwei Arten erzeugt werden - in JAVA würde man von zwei Konstruktoren sprechen :
Durch den Aufruf mit einer Zahl als Parameter wird ein leerer Rucksack erzeugt, dessen Fassungsvermögen die erste Zahl darstellt.
Durch den Aufruf mit einer Zahl als erstem Parameter und einer Liste von Zahlen wird ein Rucksack erzeugt, der schon mit den in der Liste übergebenen Stücken gefüllt wird.

Zu 2:
zeichne-rucksack löscht zunächst den Inhalt des Grafikfensters und zeigt dann den Inhalt des ihr übergebenen Rucksacks im (ebenfalls übergebenen) Fenster an.

Zu 3:
Eingabe-Schleife ermöglicht eine direkte Verwendung der Grafik. Diese Funktion zeigt uns auch gleichzeitig die Verwendung eines mit der Funktion erzeuge-rucksack erstellten rucksacks:

       (rucksack 'fuege-hinzu eingabe)
       (rucksack 'zeige)
       (rucksack 'zeige-laenge)
       (zeichne-Rucksack rucksack fenster)

Der Rucksack wird mit seinem Namen angesprochen und nachfolgend den Parametern, welche die von ihm zu bearbeitende Aufgabe definieren. (Das zeigt übrigens, dass rucksack vom Typ Funktion ist.)

Zu 4:
warte ermöglicht es, in Ruhe den aktuellen Zustand des Rucksacks zu betrachten.

Aufruf durch ein anderes Programm:

Man bindet diese Datei in ein anderes Programm mit

   (load "grafik-fuer-rucksack.scm")
in ein anderes Programm ein. Wenn beide Dateien nicht im selben Verzeichnis liegen, muss man den richtigen Pfad mit angeben.

Will man nicht den schon mitgelieferten Rucksack "mein-rucksack" verwenden, muss man sich zunächst einen eigenen erzeugen, ihn dann im Programm mit den notwendigen Werten versorgen und das Anzeigen an den gewünschten Stellen aufrufen. Alternativ kann man auch an den gewünschten Stellen im Programm jeweils einen neuen Rucksack mit der aktuellen Füllung erzeugen und ihn anzeigen lassen.

Übrigens kann man natürlich auch mehrere Rucksäcke gleichzeitig darstellen, dann muss man allerdings die Funktion zeige-rucksack so modifizieren, dass sie nicht mit der konstant vorgegebenen Position

  (make-posn 8 8)
arbeitet, sondern die Position als Parameter übergeben bekommt.