Aufgabe 1

Schreibe ein Programm, welches deinen Namen auf der Konsole ausgibt.
Lösung

Aufgabe 2

Das Programm der Aufgabe 2 soll zusätzlich zu deinem Namen dein Alter auf der Konsole ausgeben. Verwende für dein Alter ein int-Feld. (int meinAlter = ...;) und gebe den Text "Alter: [deinAlter] Jahre" in der nächsten Zeile auf der Konsole aus.
Lösung

Aufgabe 3

Schreibe ein Programm, welches sich eine Zufallszahl zwischen 10 und 30 berechnet. Zeige die berechnete Zahl an. Gib auf der Console aus, ob der berechnete Wert grösser, gleich oder kleiner 20 ist.
Lösung

Aufgabe 4

Schreibe ein Programm welches eine ganzzahlige Zufallszahl zwischen 1 und 6 berechnet. Wird eine 3 gewürfelt, so soll der Text "Gewonnen, du hast eine 3 gewürfelt." ausgegeben werden. Bei 4, 5 und 6 wird der Text "Du hast eine [gewürfelte Augen] gewürfelt und darfst es noch einmal versuchen." ausgegeben. Bei allen anderen Zahlen soll der Text "Leider verloren, du hast eine [gewürfelte Augen] gewürfelt." ausgegeben werden.
Lösung

Aufgabe 5

Erstelle ein Programm, welches 6000 mal eine Zufallszahl zwischen 1 und 6 berechnet. Verwende hierzu eine for-Schleife. Gebe nach Durchlaufen der Schleife die Anzahl der gewürfelten 6er aus.
Lösung

Aufgabe 6

Berechne in einer while-Schleife solange eine ganzzahlige Zufallszahl zwischen 1 und 6, bis eine 6 gewürfelt wurde. Gebe auf der Konsole aus, wieviele Versuche hierzu benötigt wurden.
Lösung

Aufgabe 7

Verändere das Programm aus Aufgabe 6, indem du nun eine do/while - Schleife verwendest.
Lösung

Aufgabe 8

Verändere die Lösung aus Aufgabe 7, in dem du für den Loop eine Endlosschleife verwendest, die du mit break abbrichst, wenn eine 6 berechnet wurde.
Lösung

Aufgabe 9

Berechne wie oft gewürfelt werden muss, um zwei aufeinanderfolgende 6er zu würfeln. Verwende hierzu zwei ineinandergeschachtelet Endlosschleifen. Gebe nach jeder ersten gewürfelten 6 die Anzahl der für diese eine 6 benötigten Versuche aus. Würfel ein weiteres Mal und überprüfe die Anzahl der gewürfelten Augen. Springe mit continue an den Anfang der ersten Schleife, falls es keine 6 ist. Beende beide Schleifen mit break falls die zweite 6 gewürfelt wurde.
Lösung

Aufgabe 10

Erstelle die Klasse 'Dice', welche einen Würfel darstellt. Definiere in der Klasse die Memebervariable 'eyes', welche den zuletzt gewürfelten Wert speichert. Würfle im Konstruktor und weise den Wert der Variablen 'eyes' zu. Zeige diesen Wert in der Console an.
Um den Würfel ausprobieren zu können muss dem Würfel die Methode public static void main(String[] args) hinzugefügt werden. Erzeuge in dieser Methode eine Instanz des Würfels.

Lösung

Zusatzaufgabe:
Füge der Klasse 'Dice' einen zweiten Konstruktor hinzu, dem die Anzahl der Würfelseiten übergeben werden kann. Füge zum Speichern der Anzahl der Würfelseiten der Klasse die Membervariable 'sides' hinzu.

Lösung

Aufgabe 11

Erstelle eine Klasse, welche ein Würfelspiel repräsentiert. Gib dieser Klasse den Namen 'DiceGame'. Füge diesem Würfelspiel einen Würfel als Membervariable hinzu. Erzeuge im Konstruktor des Spiels eine Instanz dieses Würfels. Verwende für die Klasse 'DiceGame' eine eigene Datei. Verwende als Würfel die in der vorherigen Aufgabe erstellte Würfelklasse 'Dice'. Entferne die Methode public static void main aus dem Würfel. Schreibe in eine weitere neue Datei die Klasse 'GamePlayer' und füge in diese Klasse die Methode public static void main(String[] args) ein. Erzeuge in main eine Instanz des Würfelspiels.
Lösung

Aufgabe 12

Setze im Konstruktor der Klasse DiceGame den Wert der Membervariablen eyes des Würfels auf einen beliebigen Wert ausserhalb des Bereichs 1..6 und gib den Wert in der Methode main der Klasse GamePlayer auf der Console aus. Überlege dir ob dies dem Objektorientierten Ansatz entspricht.

Lösung

Aufgabe 13

Füge dem Würfel die Methode void playDice() hinzu, die der Variable eyes einen neuen Wert zuweist.Rufe im Konstruktor diese Methode auf, um der Variablen eyes einen ersten Wert zuzuweisen. Gib den Wert auf der Konsole aus. Verwende den GamePlayer und das DiceGame aus Aufgabe 11 zum Testen.
Lösung

Aufgabe 14

Erweitere den Würfel um die Methode int getEyes(), welche den Wert der Variablen eyes zurückgibt. Füge in die Klasse DiceGame die Methode void playGame() ein. Spiele in dieser Methode dreimal nacheinander den Würfel und gib die Ziffern aneinandergereiht als eine Zahl aus. Rufe in der main-Methode der Klasse GamePlayer die Methode playGame der Klasse DiceGame auf.
Lösung

Aufgabe 15

Programmiere einen 'gezinkten' Würfel. Leite diesen Würfel von der Klasse Dice aus Aufgabe 13 ab und überschreibe die Methode playDice so, dass die Wahrscheinlichkeit eine 6 zu würfeln erhöht wird. Ersetze in der Klasse DiceGame aus Aufgabe 14 den Würfel durch den gezinkten Würfel und teste den neuen Würfel mit dem GamePlayer aus Aufgabe 14.
Lösung

Aufgabe 16

Verschiebe die Klassen Dice und DiceGame in das package games und die Klasse GamePlayer in das Verzeichnis programs. Achte darauf, dass die Sourcecode Dateien im richtigen Verzeichnis liegen. Denke daran die Zugriffsklassen der Klassen und Methoden anzupassen Sorge dafür, dass man auf die Membervariable eyes des Würfels ausserhalb der Klasse Dice nicht mehr zugreifen kann.

Lösung

Aufgabe 17

Lies über den Programmaufruf in der Konsole die MitspielerInnen ein. Gib eine Fehlermeldung aus, falls keine SpielerInnen eingegeben wurden und breche das Spiel ab. Füge in die Klasse DiceGame ein String-Array als Membervariable ein und gib dieser Variablen den Namen players Ergänze die Klasse um die Methode public void setPlayers(String[] players) um der Membervariablen eine Wert zuweisen zu können. Rufe in der main-Methode des GamePlayers diese Methode auf, um die von der Konsole eingelesenen Mitspieler zu übergeben. Würfel für jedeN SpielerIn in der Methode playGame dreimal, wie in Aufgabe 14 beschrieben und gib den Namen sowie die gewürfelte Zahl auf der Konsole aus.

Lösung

Aufgabe 18

Verwende für das Speichern der Ergebnisse ein zweidimensionales int-Array. Die Anzahl der Zeilen in diesem Array muss gleich der Anzahl der Spieler sein. Die Anzahl der Spalten muss 3 sein. Füge der Klass die Methode public void showResult() hinzu, in der das Ergebnis für die einzelnen Spieler ausgegeben wird. Entferne die Ausgabe der Ergebnisse aus der Methode playGame. Füge in der Klasse GamePlayer den Aufruf der Methode showResult hinzu.

Lösung

Aufgabe 19

Überschreibe in der Klasse DiceGame die Methode toString und gib in dieser Methode die Namen der Mitspieler und ihre Würfelergebnisse zurück. Entferne die Ausgabe der Namen und Ergebnisse aus der Methode playGame. Füge im GamePlayer nach dem Aufruf der Methode playGame einen Aufruf von System.out.println ein und übergib hier die Instanz des Würfelspiels. Entferne die Methode showResult aus der Klasse DiceGame.

Lösung

Aufgabe 20

Erstelle im package games das Interface Game. Dieses Interface soll die Methoden public void setPlayers(String[] players) und public void playGame() enthalten. Implementiere dieses Interface in in die Klasse DiceGame. Erstelle eine neue Klasse DiceGame2. Implementiere in dieser Klasse ebenfalls das Interface Game. Die Spielregel für dieses neue Spiel lautet: Dreimal würfeln und die gewürfelten Ergebnisse addieren. Diese Spielregel muss in der Methode playGame implementiert werden. Gib beim Aufruf in der Kommandozeile den Namen des Spiels an, das aufgerufen werden soll. Sorge durch die Verwendung des Interfaces Game dafür, dass die Zeilen:

  game.setPlayers(args);
  game.playGame();
  System.out.println(game);

nur ein einziges Mal im Sourcecode erscheinen.

Lösung

Aufgabe 10.1

Erstelle im Package games die Klasse GameFrame. Gib dem Fenster die Grösse 300 x 320 Pixel. Setze den Titel das Fensters auf "Würfelspiel". Ändere die Klasse GamePlayer im Package programs so ab, dass sie das Fenster initialisiert und anzeigt. Zum jetzigen Zeitpunkt muss das Programm mit CTRL-c abgebrochen werden um das Fenster zu schliessen.

Lösung

Aufgabe 10.2

Erstelle im Package games die Klasse DiceCanvas, die von der Klasse java.awt.Canvas abgeleitet ist. Überschreibe die Methode public void paint(Graphics g) so, dass die gewürfelte Zahl 6 angezeigt wird. Füge eine Instanz von DiceCanvas dem Frame aus Aufgabe 10.1 hinzu und zeige das Fenster mit Hilfe der Klasse GamePlayer an.

Lösung

Aufgabe 30

Schreibe ein Servlet, welches eine HTML-Seite mit dem Titel HelloWorld-Servlet erzeugt. Gib in der Grösse H1 den Text Hello World aus.

Lösung http://www.zimberfamily.de/zimbers/HelloWorld

Aufgabe 31

Entwerfe eine Login-Seite und schreibe das Servlet Welcome. Auf der Login-Seite soll der Benutzer seinen Login-Namen und sein Passwort eingeben. Schicke die Angaben mit einem POST-Request an die ACTION Welcome. Lies im Welcome-Servlet den Namen und das Passwort des Benutzers aus und begrüsse den Benutzer mit seinem Namen.

Lösung Login1.html

Aufgabe 32

Füge in das Servlet aus Aufgabe 31 die Überprüfung des Passwortes ein. Begrüsse den Benutzer bei korrekter Eingabe und gebe ihm im Fehlerfall eine Fehlermeldung zurück. Verwende zum Überprüfen des Passwortes entweder Einträge in einer Textdatei oder einer Datenbanktabelle.

Lösung Login3.html