Unterrichtseinsichten - Schuljahr 2013/2014 - Informatik-AG
Programmieren mit Java
- Wir arbeiten mit der Entwicklungsumgebung Netbeans.
Das Programm kann man zusammen mit der Java-Programmiersprache (Java JDK
7) aus dem Internet legal und kostenlos z.B. unter folgender Adresse
herunterladen:
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html
- Zunächst lernen wir die Sprache Java etwas kennen und geben Ergebnisse
nur auf dem Konsolen-Bildschirm aus.
Später benutzen wir dann Buttons, Ein- und Ausgabefelder usw.
- So starten wir Netbeans, um unsere ersten Java-Programme zu schreiben:



Unter "Project Name" sollte man einen eigenen
aussagekräftigen Namen für das entsprechende Programm wählen.
Automatisch wird folgender Programmrumpf erstellt:

- An dieser Stelle können nicht alle Elemente der Programmiersprache
aufgeführt werden.
Einen sehr guten Überblick in die Programmiersprache Java erhält man
durch das Buch "Java
ist
auch eine Insel", das in einer html-Ausgabe
online zu lesen ist.
- Eine Ausgabe auf den Bildschirm (unter Output) erhält man z.B. durch
die Programmzeile
System.out.println("Das Ergebnis von 3*5 ist "+(3*5));
- Der Typ von Variablen muss festgelegt werden:
int a; // a ist eine ganze Zahl
- Soll eine Eingabe über die Tastatur während des Programmablaufs
geschehen, so fügt man folgende Zeilen im Programm ein:
Zeile 6:
import java.util.Scanner;
Zeile 17 (zwischen den beiden geschweiften Klammern von public static
void main...):
Scanner sc;
sc=new Scanner(System.in);
Eine Eingabe für die Variable a erfolgt dann z.B. so:
a=sc.nextInt();
- Hier zum download
unseres ersten Programms:

2013-08-20
- Weil mehrere neue Teilnehmer zur AG gekommen sind, haben wir noch
einmal den Einstieg in Java gewagt.
Hier unsere ersten Programme
- Beide Programme können in Netbeans weiter bearbeitet werden.
Die Download-Datei muss aber erst noch entpackt werden, z. B. mit 7-zip
oder einem anderen Packprogramm.
2013-08-27
- Hier die beiden Programme aus dem Unterricht:
1. Thema:
while-Schleife, Verzweigung mit if-else
2. Thema:
Zeichnen, Farbe
Zur Erinnerung: Bei Java gibt es 2 Divisionen:
/ ergibt den ganzzahligen Teil bei der Division. Beispiel: 7/3=2
% ergibt den Rest bei der Division. Beispiel: 7%3=1
2013-09-03
- Programm zur Verschlüsselung mit rot13 (download
des gesamten Netbeans-Programms):
2013-09-17
- Für zukünftige Grafik-Anwendungen haben wir einige Grundbegriffe
kennengelernt:
import jawa.awt.*; (Einbinden der Java-Grafikbestandteile)
Graphics bild = jPanel1.getGraphics(); (mit den
Eigenschaften von "bild" kann man auf dem jPanel1 zeichnen)
bild.setGraphics(Color.red); (Farbe wird auf
"rot" eingestellt)
bild.drawLine(12, 43, 78, 96); (Strecke vom Punkt (12/43) zum
Punkt (78/96) wird gezeichnet)
bild.drawRect(12, 43, 78, 96); (Rechteck mit oberer linker Ecke am
Punkt (12/43), der Breite 78 und der Höhe 96 wird gezeichnet)
bild.fillRect(12, 43, 78, 96); (dasselbe Rechteck, nur ganz mit
Farbe gefüllt)
bild.drawOval(12, 43, 78, 96); (ins Rechteck wird ein passendes
Oval eingefügt)
- Hier das Beispiel-Programm
zum Download
2013-09-24
- Abfrage von Tastencodes
Wird eine Taste gedrückt, so gibt das Programm den Zahlenwert der Taste
heraus.

- Bewegen von Grafiken
Mit Kenntnis der Tastencodes kann ein Grafikelement nach Wunsch
verschoben werden.
In diesem Beispiel sind es die Cursortasten, die die Richtung angeben,
in die ein "Luftballon mit Bindfaden" verschoben wird.
2013-10-29
- Themen der Doppelstunde:
Icon (Kaffeetasse) oben links im Fenster durch eigenens Bild ersetzen.
try-catch-Block von Zeilen 15 bis 20

Fenster beschriften
Text unter Frame-Eigenschaften bei
"title" einsetzen:

Zeichenprogramm: Zeichenfläche, Farbauswahl, mit Maus zeichnen

Screenshot des Programms:
Und hier das gesamte Programm
zum download.
2013-11-05
- ... und hier die Erweiterung des Programms mit der Möglichkeit,
verschiedene Strichdicken einzustellen:
- Beginn eines neuen Programms: KastenSchieben
- Programmtext:

Bis jetzt leistet das Programm noch nicht sehr viel:
Die Spielfigur wird auf die Zeichenfläche gesetzt und kann mit den
Cursortasten bewegt werden, ohne dass das Spielfeld verlassen wird.
Fortsetzung des Programms in der nächsten Woche.
2013-11-12
- Wir haben das Programm so erweitert, dass wir mit der Spielfigur
(blaues Quadrat) auf dem Spielfeld in waagrechter und senkrechter
Richtung herumlaufen können und den Kasten (grünes Quadrat)
umherschieben können.
Die Mauer (rotes Quadrat) ist für die Spielfigur und den Kasten
undurchdringlich.
In der nächsten Woche werden wir mehr Elemente auf die Spielfläche
setzen und Zielfelder bereitstellen, auf die die Kisten geschoben werden
sollen.
Hier das vollständige
(vorläufige) Programm zum download.
2013-11-19
- Nun ist das erste Spielfeld fertig. Die Zielfelder kommen in der
nächsten Woche dran.
- Hier das aktuelle Programm zum download.
2013-12-03
- Einen Fehler gab es im Programm noch, aber jetzt sollten die
Grundfunktionen fertig sein:
Das Männchen kann über das Zielfeld gehen.
Auch die Kiste kann überall geschoben werden.
"Mann auf Ziel" und "Kiste auf Ziel" haben eigene Bilder bekommen.

- Hier das Programm
zum Download
2013-12-10
- Start zu unserem neuen Spieleprojekt
Erste Programmierschritte zur bewegten Kugel:

Neu kennengelernt haben wir den Timer, mit dem man in zeitlichen
Abständen immer wieder denselben Vorgang ausführen kann - hier die
Bewegung der Kugel.
Download des
Programms (nachträglich hinzugefügt: Man kann nicht mehr durch
mehrfaches Klicken des Startknopfes die Geschwndigkeit erhöhen).
2014-01-07
- Sound-Ausgabe mit Hilfer der Java API "JFugue 4.0.3"
- Herunterladen der benötigten Dateien unter http://www.jfugue.org/
:
Java API jfugue-4.0.3-with-musicxml.jar
Anleitung Kapitel
1
Anleitung Kapitel 2
- Ist in Netbeans ein Projekt erstellt, muss JFugue eingebunden werden:

Dazu rechter Mausklick auf das Projekt (links),
Eigenschaften oder Properties auswählen,
auf "Add JAR/Folder" klicken,
die einzubindende Datei auswählen,
mit OK bestätigen.
- Import einfügen:
import org.jfugue.*;
Globale Variablen einfügen:
Player player = new Player();
Pattern musik;
Pattern (Töne, die gespielt werden sollen) erstellen und Musik
abspielen:
musik = new Pattern ("C5 E5 G5 C6 ");
player.play(musik);
- Zum Einstellen der Notenlängen, der Geschwindigkeit, der Instrumente
usw. siehe Anleitung
Kapitel 2.
2014-01-14
- Ausbruch-Programm
Hier das lauffertige
Programm in einer zum Unterricht etwas erweiterten Version:
- Das mehrmalige Drücken des Startknopfes ist nicht mehr möglich.
Damit kann die Geschwindigkeit des Balls auch nicht mehr erhöht
werden.
- Der Ball "ruckelt" nicht mehr, weil erst in ein BufferedImage
gezeichnet wird und dann das gesamte Bild auf das Panel gelegt wird.
- Wenn der Ball die Wand berührt, wird ein Sound gespielt.
- Wird der Sound direkt im Programmablauf gespielt, entsteht eine
Verzögerung in der Bewegung des Balls.
Deshalb wurde hier für den Sound ein neuer Thread (eine parallele
Abarbeitung neben dem Hauptprogramm) angelegt.
- In der nächsten Stunde werden wir die Erweiterungen besprechen.
Für diejenigen, die das Programm und die Neuerungen schon vorher etwas
untersuchen wollen, hier das gesamte
Programm zur Bearbeitung in Netbeans.
2014-02-18
- Dialoge zur Dateiverwaltung und zur Farbauswahl
Hier das gepackte Programm
mit den Beispielen zur Benutzung von Dialogen
- zum Laden in eine Datei,
- zum Lesen aus einer Datei,
- zur Auswahl einer Farbe.
- Neu gegenüber dem Programm in der Schule ist:
- Man kann beliebige Pfade zum Speichern und Lesen benutzen.
- Das Farbfeld wird immer korrekt angezeigt. Die Fehlfunktion vom
letzten Dienstag konnte ich nicht nachstellen.
2014-03-04
- Die lauffähigen Programme "Kiste" mit dem "LevelEditor"
hier zum Download
(die Datei muss entpackt werden. Sie enthält 2 Ordner mit den beiden
Programmen. Beispiel-Level sind im Programmordner zum Leveleditor
enthalten).
2014-03-11
- Lauffähiges Programm "Kastenfall"
hier zum Download
(die Datei muss entpackt werden).
Neue Inhalte: selbstdefinierte Klassen; unsichtbarer Cursor
Aufgabe: Verbesserung des Rohprogramms
2014-03-25
2014-04-01
- Wir haben einige Fortschritte beim Minensucher-Spiel gemacht:
- Es werden die Maximalzahl der Minen und die
gefundenen Minen angezeigt.
- Falls eine Mine vermutet wurde und
nachträglich doch als freies Feld festgelegt werden sollte, wird jetzt
die Farbe richtig geändert.
- Schwierigkeiten bereitete das automatische Ausfüllen
nebeneinanderliegender leerer Felder.
Sinnvoll kann man das eigentlich nur mit Rekursion lösen.
Der Programmteil (NullenAusfuellen) ist jetzt eingebaut.
Es ist zwar wenig Code, aber die Funktionsweise ist für Euch sicher
etwas schwierig zu verstehen. Wir sprechen das nächste Mal darüber.
- Hier ist das lauffähige
Programm (aktueller Stand)
- Und hier die gepackte
Datei für die Weiterbearbeitung in Netbeans und 2 Screenshots.
- Wenn ihr Langeweile habt, könnt ihr ja mal einige Verbesserungen
vornehmen, z. B.
- Wahlmöglichkeit für die maximale Anzahl von Minen
- Wahlmöglichkeit für die Spielfeldgröße.
- Messen der Zeit, die für die Lösung gebraucht wurde.
- Andere Farbgestaltung.
- Statt farbiger Flächen und Zahlen könnten Bilder
oder Symbole angezeigt werden.
2014-04-29
- Das neue Projekt heißt "Flattervogel".
Dabei soll ein roter Kreis durch die Lücken zwischen Stäben bewegt
werden ...
- Heute haben wir nur dieses Rumpfprogramm (gepackte
Datei zur Weiterbearbeitung mit Netbeans 8 - nach Entpacken)
geschafft, bei dem man noch nicht so viel erkennen kann.

In der nächsten Stunde geht es weiter.
- Die Version Netbeans 8.0 kann zusammen mit Java JDK 8.5 hier
heruntergeladen werden.
Dazu das rechte Feld mit der Aufschrift Netbeans - Download benutzen.
2014-05-06
- Das Programm "Flattervogel" haben wir weiter geschrieben.
Nun gibt es auch die grünen Hindernisse (Wiederholung zu: Wie erstelle
ich eine eigene Klasse) und der Timer scrollt den Hintergrund.
Es fehlt noch das Zählen der Punkte. Schafft ihr das alleine?
Hier die gepackte Netbeans-Datei.
2014-05-27
- Die Steuerung des Flattervogels sollte nach euren Wünschen so gehen,
dass man durch das Drücken der Leertaste den Vogel in die Luft wirft und
dass er dann zurück nach unten fällt.
Durch mehrmaliges Drücken kann man den Vogel immer weiter nach oben
treiben.
Hier das Testprogramm
zum Weiterbearbeiten unter Netbeans.
2014-06-03
2014-06-17
2014-06-24
- Nun haben wir den Ort des Helden, der Roboter und einiger Gegenstände
(zunächst nur Mauern) in einem Feld gespeichert und können durch
Abfragen erreichen, dass man durch Mauern nicht laufen kann und dass die
Roboter nicht alle am selben Platz sind. Hier die neueste
Version zum download.
2014-07-01
- Das Roboterprogramm enthält nun folgende neue Eigenschaften:
- Das Spielfeld kann durch Beschriften einer Matrix erstellt werden.
- Es gibt Fallen, in denen ein Roboter oder das Männchen zerstört
werden.
- Berührt ein Roboter das Männchen, ist das Spiel zu Ende.
- Viel Spaß beim Abwandeln und bei der Verbesserung des Programms!
Hier die neue aktuelle
Version (für Netbeans) zum download.
2014-07-08
- Neues Spiel: "Tausch"
Durch Verschieben eines Farbpunktes um 1 Feld nach links, oben, rechts
oder unten muss erreicht werden, dass mindestens 3 gleichfarbige Felder
neben- oder übereinander liegen.
Die gleichen Felder werden dann gelöscht. Die oben liegenden Steine
fallen nach unten und ganz oben wird das Feld mit Zufallsfarben
aufgefüllt.
- Heute wurde das Spielfeld erzeugt. In der nächsten Stunde geht es dann
um das Ziehen der Steine.
Programm TauschV1
zum Herunterladen und Weiterbearbeiten mit Netbeans.
2014-07-15
- Man kann jetzt einen farbigen Punkt auf das Nachbarfeld ziehen und die
beiden beteiligten Felder werden dann ausgetauscht.
Der Screenshot zeigt, wie gerade ein blauer Punkt in der Mitte auf den
darunter liegenden Punkt gezogen wird.
Programm
TauschV2 zum Herunterladen und Weiterbearbeiten mit Netbeans.
2014-07-22
- In der letzten Stunde des Schuljahres haben wir die Rohversion des
"Tausch"-Spiels nun fertig erstellt.
Verschiedene Verschönerungen und Abwandlungen könnt ihr sicher selbst
mit Hilfe der Netbeans-Version
von TauschV3 erstellen.
Wer nur spielen will, kann das Programm in der (mit Java) ausführbaren
Version herunterladen: TauschV3.jar