Programmieraufgabe 77

Meine zehnte Klasse darf sich aktuell an einem Schnick-Schnack-Schnuck ausprobieren. Hierzu haben Sie folgendes Zustandsdiagramm bekommen, das sie nun mit Hilfe einer Mehrfach-Verzweigung (JAVA: switch) umsetzen.

SteinPapierSchere

Aufgabe
Schreibe eine Klasse Schnick-Schnack-Schnuck und implementiere das gezeigte Zustandsdiagramm. Nutze hierfür u.a. ein Attribut “private String zustand”, welches den aktuellen Spielstand/Zustand speichert.

Das Schöne an Aufgaben dieser Art ist die fast beliebige Steigerung des Schwierigkeitsgrads. Hier ein paar Ideen:

  1. Schreibe eine Methode “waehleZufallsSymbol”, so dass du einen Computergegner haben könntest.
  2. Ergänze eine Oberfläche, so dass du mit dem Computergegner spielen könntest.
  3. Ergänze das Programm um mehr Symbole: 101 Symbole
    Die Herausforderung ist dabei die Frage, wie man effizient das Vergleichen der Symbole umsetzt. Aber man kann ja erstmal nur mit dem Brunnen anfangen.
  4. Für die 12. Klässler kann man das ganze natürlich auch netzwerktauglich machen.

Haptisches Arbeiten

Auch wenn man mir es nicht immer so anmerkt, bastel und mal ich ganz gerne. Am vergangenen Wochenende habe ich daher meiner Tochter dabei geholfen, ihr Drachen-Buch fertig zu machen. Das Problem bestand darin, die losen Din-A-4-Blätter stilecht zu binden. Die Vorgabe ihrerseit waren: ein gefärbter Karton von Amazon als Buchumschlag und ein Haufen mit Kaffee gefärbter und auf alt getrimmter Blätter. Auf den Blätter waren Zeichnungen der Drachen und in einer eigens entworfenen Runenschrift die Beschreibung dazu.

Herausgekommen ist dann dies:

IMG_4048 IMG_4049 IMG_4050 IMG_4051 IMG_4052

Das Zubehör fand ich nach einigem Suchen dann beim Buchbinder-Shop. Und weil das so viel Spaß gemacht hat, habe ich bei Sophie auch noch gleich ein ganzes Buchbind-Set bestellt.

Abitur 2015

Das Abitur 2015 ist noch in vollem Gange und die Korrektur läuft, soweit ich das mit meiner aktuellen Magen-Darm-Erkrankung hinbekomme. Zumindest kann ich die Zeit auf dem Klo nutzen und mir so meine Gedanken zum diesjährigen Informatik-Abitur machen.

Mein erster Eindruck? Gut machbar, denn gerade der erste Teil scheint fast auf einer Idee zu basieren, die ich mal in meinem Blog darstellte. Nämlich die Implementierung von UNO ohne Sonderkarten. Das kann jetzt natürlich Zufall sein, aber wer weiß.

Worüber ich mir zur Ablenkung Gedanken machen, ist die Musterlösung. Hier gibt es u.a. folgendes Klassendiagramm (nur Aussschnitt):

Unbenanntes DiagrammEin Talon ist im Übrigen derjenige Kartenstapel mit den verdeckten Karten.

Was mich hier wundert, ist das “0..1”. Gemäß UML-Notation bedeutet das ja nur, dass es kein oder 1 Spiel gibt. Prof. Scheibl schreibt dazu:

Die Angabe einer Multiplizität, insbesondere einer variablen Vielfachheit wird meist durch eine angehängte Auflistung zu realisieren sein. Durch die Festlegung [0..1] wird das Attribut zum optionalen Attribut. Die Vorgabe [1] wird normalerweise weggelassen.

Die Attribute, welche die Beziehung zu Instanzen der Klasse Kartengruppe darstellt, soll optional sein?  Das macht in meinen Augen keinen Sinn.

Allerdings muss man bedenken, dass folgendes gilt (Zitat: Prof Scheibl):

(…)die Multiplizität (…) steht am Ende der Verbindungslinie, also ferne Schreibweise.

Das hieße also, dass “0..1” sich auf die Sicht des Talons bzw. der Ablage zum Spiel bezieht. Ein Kartenstapel ohne Spiel macht aus meiner Sicht aber auch keinen Sinn.

Die Angabe halte ich auch nicht für sinnvoll, da die Beschreibung der Beziehung aus Sicht des Spiels angegeben wird: “hat als Ablage >”, “hat als Talon >”. Da würde die folgende 1 im Sinne der fernen Schreibweise völlig genügen.

Die Angabe beider Vielfachheiten würde zusätzlich Attribute bei beiden Klassen erzwingen, was ich nicht für sinnvoll halte.

Ich denke, dass die Angabe beider Multiplizitäten hier eher aus dem Datenbank-Denken heraus enstanden ist. Dort gibt es ja 1:1, 1:n und n:m Beziehungen. Oben wäre damit dann eine 1:n-Beziehung gemeint, was nur ein Attribut auf der n-Seite erfordern würde und damit beim Spiel, was wiederum ja sinnvoll wäre. Allerdings hätte dann auch eine 1:1-Beziehung genügt. Dann hätte man das Attribut entweder in die Kartengruppe oder die Spielklasse legen können. Bei mir wäre es in die Spielklasse gekommen, da es aus meiner Sicht nur die Beziehungen “hat” und “ist” gibt.

 

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen