Projekt 4: Jump and Run Games Supermario
|
|
- Kristin Wagner
- vor 6 Jahren
- Abrufe
Transkript
1 Projekt 4: Jump and Run Games Supermario Wir programmieren in diesem Kapitel eines der bekanntesten Junp and Run Spiele Supermario, das von Nitendo 2011 veröffentlicht wurde. Supermario ist der Held der seine Freundin Peach vor den Monstern retten soll. Mario muss über Leitern einen Berg erklimmen, dabei rollenden Fässern durch Sprünge ausweichen. Punkte sammelt Mario, wenn er Peach (auf der oberen Leiter rechts) erreicht oder rote Sternsymbole einsammelt. Importiere aus dem Lehrerverzeichnis eine Spielversion, in der sich Mario bereits bewegt. Deine Aufgabe ist es, die beiden Fässer herunterrollen zulassen, die Sterne zu positionieren und während dees Spieles die Punktewertung zu vergeben. Zunächst ein Überblick über die verwendeten Klassen: public class Gui extends JPanel implements ActionListener Gui wird als Unterklasse von JPanel deklariert, sie erbt somit alle Eigenschaften, die zum Zeichnen von Objekten notwendig sind. In der Klasse Gui wird der Bildschirm mit allen Figuren (Mario, Peach, 2 Fässer, 5 Sterne) alle 5 Millisekunden neu gezeichnet und die Tastatur zur Steuerung von Mario abgefragt. Kommt es zur Kollision von Mario mit einem Fass oder einem Stern, wird Mario zurückgeschickt bzw. Punkte vergeben. public Gui() Im Konstruktor der Klasse Gui werden alle Objekte erzeugt, die gezeichnet werden sollen: mario: Der Held (zwei Bilder mariobild1.png und mariobild2.png zeigen Mario nach Rechts und Links laufend) peach: Die Freundin (zwei Bilder peachbild1.png und peachbild2.png zeigen Peach nach rechts- und links schauend) fass1, fass2: 2 Objekte der werden mit dem Bild fassbild.png gezeigt. stern1, stern2,, stern5: 5 Objekte der Klasse Stern mit dem Bild sternbild.png dargestellt. public void actionperformed(actionevent e) Bei jeder Auslösung des Timers, d. h. alle 5 Millisekunden, wird die Methode actionperformed gestartet: Die Bewegung wird aktualisiert und der Bildschirm wird neu gezeichnet: bewegen(); repaint(); Der Befehl repaint ruft die folgende Methode paint auf: public void paint(graphics g) Hier werden alle grafischen Objekte (Mario, Peach, Fässer, Sterne usw.) gezeichnet. public void bewegungen() In der Methode bewegungen() wird die Bewegung der Figuren gesteuert: hier wird registriert, wenn Mario Peach erreicht oder einen Stern berührt hat. private class TastaturAdapter extends KeyAdapter public void keypressed(keyevent e) Durch den TastaturAdapter wird die Tastatur abgefragt und damit die Bewegung von Mario gesteuert. Die Methode keypressed wird nach jedem Druck auf eine Taste ausgeführt. Aufgabe 1: Wie heißt der Befehl, mit dem die einzelnen Figuren gezeichnet werden? Wie heißt der Befehl, mit dem der Spielstand ausgegeben wird? Schreibe die beiden Befehle ins Heft. 25
2 public class SuperMario extends javax.swing.jframe Diese Klasse dient nur dazu, um am Anfang die Spielregeln anzuzeigen. Durch Klick auf einen Button wird eine Instanz der Klasse Gui geöffnet und das Spiel gestartet. In dieser Klasse musst du nichts verändern. public class Mario Innerhalb der Klasse Mario wird die Spielfigur Mario bewegt. Insbesondere muss das Programm darauf achten, dass Mario sich nur entlang der waagerechten und senkrechten Leitern bewegen kann. Die Bildschirmkoordinaten für den Sprung von Mario (ausgelöst in der Methode keypressed der Klase Gui) werden berechnet. public Mario() Im Konstruktor der Klasse Mario wird der Held auf der unteren Leiter ganz Links positioniert. public void zurueck() Nachdem Mario Peach erreicht hat oder von einem Fass getroffen wurde, wird Mario zurück in die Ausgangsecke beordert. public void sprungstarten() Ausgelöst von der Methode Gui.keypressed wird der Sprung gestartet. Die Variable sprungposition wird stückweise erhöht, bis der höchste Punkt erreicht ist, danach wird sie wieder schritweise auf 0 zurückgeführt. private boolean aufleiter (int x1, int x2, int y1, int y2, int laufy) Die Methode prüft, ob sich Mario gerade auf einer senkrechten leiter befindet. public void bewegen(int laufx,int laufy) Hier wird die Bewegung von Mario gesteuert: befindet er sich auf einer senkrechten Leiter, darf er sich hochoder runter bewegen. Befindet er sich in Höhe einer waagerechten Leiter, darf er sich nach Links oder Rechts bewegen. public int getmariox(); public int getmarioy; public boolean getsprunggestartet() Drei Get-Methoden leiefern die akktuelle Position von Mario und eine Information, ob ein Sprung gestartet und noch nicht beendet wurde. Aufgabe 2: Das Koordinatensystem der Bildschirmoberfläche hat seinen Ursprung (Punkt (0/0)) in der linken, oberen Ecke. Die x-koordinate wächst nach rechts, die Y-Koordinate anders als in der Mathematik wächst nach Unten. Starte das Spiel und beobachte die Anzeige der Koordinaten von Mario, wenn du Mario bewegst: Schreibe im Heft die y-koordinaten der vier Leitern auf. An welchen x-koordinaten stehen vertikale Leitern? public class Fass In dieser Klasse wird die Bewegung der beiden Fässer gesteuert. Es wird deine erste Aufgabe sein, die Fässer zun zeichnen und zu bewegen. public boolean getroffen(int Mariox, int Marioy) Die Methode getroffen gibt als Wahrheitswert zurück, ob Mario ein Fass gerade berührt. Dies ist die einzige Methode der, die bereits fertig ist. Public class Stern In dieser Klasse wird der Position der fünf Sterne zufällig bestimmt und die Sterne werden gezeichnet. Auch dies wird deine Aufgabe sein, die Sterne zu zeichnen. public boolean getroffen(int Mariox, int Marioy) Die Methode getroffen gibt als Wahrheitswert zurück, ob Mario ein Fass gerade berührt. Dies ist die einzige Methode der, die bereits fertig ist. Aufgabe 3: Zeichne ein Fass am linken Ende der obersten Leiter. Das Fass benutzt das Bild fass1.png. a) Die notwendigen Befehle zum Bereitstellen des Bildes kannst du dir im Konstruktor der Klasse Gui für Mario abschauen. Das ImageIcon für das Fass soll f1 ImageIcon f1 = heißen, das image fassbild wurde bereits deklariert. fassbild = für die Fässer Die Befehle werden ebenfalls im Konstruktor untergebracht. 26
3 b) Die beiden Objekte fass1 und fass2 der wurden bereits in der Klassse Gui deklariert. Du musst die beiden Fässer im Konstruktor der Klasse Gui mit einem new-befehl nur noch erzeugen (vgl. den new-befehl für Mario). Deklaration der Objekte der Klassen Mario, Stern und Fass c) In der Methode paint der Klasse Gui sieht du, wie Mario gezeichnet wird. f2 ist ein Objekt zum Zeichnen von zweidimensionalen Grafiken. und sind Variablen für die Position von Mario. Verwende zunächst hier die beiden Zahlen für die Startposition der Fässer (oberste Leiter ganz Links). Beobachte, ob das Fass gezeichnet wurde. Befehl zum Zeichnen des Bildes von Mario im Punkt mit den Koordinaten,. Dies ist übrigens die linke obere Ecke der Grafikdatei für Mario. d) Jetzt soll sich das Fass entlang der obersten Leiter nach Rechts bewegen. In der siehst du, dass als Variablen unter anderem fassx und benutzt werden. Dies sind die Koordinaten eines Fasses. Ergänze in der die Methoden getfassx und getfassy, mit der jeweils der Wert einer Koordinate an die Klasse Gui zurückgemeldet werden kann. Außerdem benötigen wir die Methode public void setzen(), in der die Koordinaten des Fasses für den Startpunkt des Fasses gesetzt werden. Zum Schluss folgt die wichtigste Methode für das Fass: public void bewegen(). In dieser Methode soll Fass ein Stück nach rechts bewegt werden. Wie weit dieses Stück ist, kann mit der Variablen Gui.geschw gesteuert werden. In deinem importierten Projekt ist in der Klasse Gui entweder 2 oder 4 als Wert eingestellt. Ist dein PC zu langsam, kannst du durch den Wert 4 die Geschwindigkeit der Bewegungen verdoppeln. geschw ist eine statische Variable in der Klasse Gui, d. h. es gibt sie nur ein einziges Mal, unabhängig davon, wie viele Objekte von der Klasse Gui erzeugt werden. Zum Schluss musst du nur noch dafür sorgen, dass die Bewegung des Fasses tatsächlich gezeichnet wird: Den Befehl zum Zeichnen des Fasses aus c) musst du verändern. Statt den festen Zahlen musst du die aktuellen Koordinaten des Fasses verwenden, nutze dazu die programmierten getmethoden für die Fasskoordinaten. In der Methode bewegungen() der Klasse Gui wird durch den Befehl fass1.bewegen() die Bewegung des Fasses alle 5 Millisekunden angestoßen. Außerdem solltest du im Konstruktor der Klasse Gui die Methode fass1.setzen() einmal aufrufen, um das Fass auf Startposition zu bringen. Jetzt müsste das Fass einmal über die obere Leiter rollen. Die Variablen-Felder in der Klasse Fass: fassx, sind die Koordinaten eines Fasses, die anderen beiden Felder werden später erklärt Ergänze die Methode bewegen so, dass die Variable fassx um den Wert von Gui.geschw erhöht wird Die Variable geschw der Klasse Gui steuert die Geschwindigkeit der Bewegungen Dass Fass wird zu Beginn auf seine Startposition gesetzt. Dass Fass wird ein Stück bewegt Aufgabe 4: a) Das Fass soll jetzt auf zwei möglichen Wegen entlang der Leitern herunterrollen. Per Zufall entscheidet sich, welcher der beiden Wege eingeschalgen wird. Im Bild rechts sind die beiden möglichen Wege eingezeichnet. Weg 1 ist orange, Weg 2 ist grün markiert. Die Wege bestehen aus insgesamt je 7 Phasen, es wechseln sich horizontale und vertikale Wege ab. Die Variable phase gibt an, in welcher Phase sich das Fass gerade befindet. Programmiere zunächst den Weg 1 für Fass1 ein. Zunächst ist das Fass in der Phase 1. Erreicht es eine bestimmte x-position, wechselt es in Phase 2 usw. Es bietet sich ein switch-befehl an, um die einzelnen Phasen innerhalb der Methode bewegen() in der zu steuern. Weg 2 Weg 1 27
4 Außerdem musst du die Methode setzen() in der ergänzen: Zu Beginn wird die Variable phase auf den Wert 1 gesetzt, damit das Fass mit der Bewegung der ersten Phase beginnen kann. So in etwa sieht der Beginn der neuen Methode bewegung() aus. b) Bisher rollt das Fass immer auf dem Weg 1 herunter. Per Zufall soll nun entschieden werden, ob das Fass den Weg 1 oder Weg 2 wählt. Dazu wird die Methode setzen() durch das Ziehen einer Zufallszahl zwischen 1 (für Weg1) und 2 (für Weg2) ergänzt: Der Befehl Math.random() erzeugt eine Zufallszahl als Dezimalzahl (Typ double) zwischen 0 und 1 (jedoch kleienr als 1). Multipliziert man diese Zahl mit 2 liegt die Zufallszahl zwischen 0 und 2. Addiert man 1, liegt die Zufallszahl zwischen 1 und 3 (jedoch kleiner als 3). Der Befehl (int) bewirkt, dass der Datentyp Double in den Datentyp Integer durch Abschneiden der Nachkommastellen konvertiert wird: In der Variablen modus sind die Werte 1 und 2 jetzt mit gleicher Wahrscheinlichkeit vertreten. Anschließend wird die Methode bewegen() so verändert, wie rechts angegeben. Die alte Methode bewegen() wird umbenannt in bewegung1(). Die Methode bewegung2() wird neu geschrieben und enthält den zweiten im letzten Bild grün dargestellten Weg. Erkläre im Heft, was die neue Methode bewegen() in der bewirkt. Die neue Methode bewegen() benötigt dabei noch eine Get-Methode getphase(), die den Wert der Variablen Phase zurückliefert. Zum Schluss wird die Methode bewegungen() in der Klasse Gui verändert, wie Rechts angegeben. Erkläre im Heft, warum jetzt die beiden Fässer nacheinander herunterrollen. Damit Fass2 nicht sofort mit Fass1 zusammen herunterrollt, wird es im Konstruktor von Gui zunächst deaktiviert: fass2.aus(). Die Methode aus() in der setzt die Koordinaten ins Negative, so dass das Fass nicht sichtbar ist: Eine Kleinigkeiten noch: Auch das Fass2 muss noch in der Methode paint() der Klasse Gui gezeichnet werden. Probiere aus, ob die Fässer nun wie gewünscht auf zwei verschiedenen Bahnen herunterrollen und nach Ankunft eines Fasses ein neues gestartet wird. Eine Zufallszahl wird gezogen, die nur die Werte 1 und 2 annehmen kann Math.random () erzeugt eine Zufallszahl x mit Math.random () * erzeugt eine Zufallszahl x mit (int) variable wandelt den Wert eine Variable vom Typ double in einen Integerwert um durch Abschneiden der Nachkommastellen, dieser ist also entweder 1 oder 2. Die Methode bewegen() wird verändert. Die alte Methode bewegen() wird umbenannt in bewegen1(). Klasse Gui, Methode bewegungen() Die Methode bewegungen() in der Klasse Gui wird verändert. Klasse Gui, Konstruktor Der Konstruktor von Gui wird ergänzt: zu Beginn soll nur Fass1 herunterrollen. fass1.bewegen(); if ((fass1.getfassy() == 398) && (fass2.getphase() == 0)){ fass2.setzen(); } else{ fass2.bewegen(); } Die Methode paint() von Gui wird ergänzt: auch Fass2 muss regelmäßig gezeichnet werden. Klasse Gui, Methode paint(); 28
5 Aufgabe 5: Wenn Mario von einem Fass getroffen wird, muss er an seine Ausgangsposition zurück. Eine Methode public boolean getroffen (,) gibt es bereits in der. Erkläre im Heft mithilfe der folgenden Abbildung, wie diese Methode funktioniert: Eine Berührung findet statt, wenn die beiden Rechtecke überlappen: + 60 fassx fassx + 45 MarioY fassx Die Methode getroffen (..) erkennt, ob eine Berührung vorliegt So könnte die Erklärung anfangen: Bei einer Berührung muss der linke Rand des Fasses (fassx) kleiner sein als Wo muss das rechts abgebildete Programmstück hin, damit Mario tatsächlich bei jeder Kollision zurückgeschickt wird? Ergänze den if-befehl so, dass zusätzlich die Punktwertung um 50 Punkte reduziert wird. Außerdem sollte die Punktewertung niemals ins Negative rutschen. Probiere die Trefferwirkung aus. Völlig analog muss abgefragt werden, ob Mario von fass2 getroffen wurde. Ergänze den entsprechenden Befehl. Wenn eine Kollision zwischen dem fass1 und mario vorliegt, muss mario zurück in die Ausgangsposition Zusatzaufgabe1: In der Klasse Stern sollen 5 Sterne an zufälligen Positionen so gesetzt werden, dass Mario die Fässer nur durch Springen erreichen kann. Die Y-Koordinaten können sein 60, 210, 360 oder 470, sie haben jeweils den gleichen Abstand von 150. Die X-Koordinaten dürfen liegen zwischen 100 und 900. Überlege, wie die Zeilen zum Ziehen der Zufallszahlen der Koordinaten heißen müssen. Hier nochmals drei Beispiele, die genauso aufgebaut sind, wie das Ziehen der Zufallszahl modus in der Klassee Fass. Der grün dargestellte Bereich soll dir helfen zu erkennen, welche Zahlen jeweils in einen Integerwert umgewandelt werden: x1 = (int) ((Math.random() * 5); zieht eine Zufallszahl zwischen 0 und 4 (einschließlich 0 und 4) x1 = (int) ((Math.random() * 5) + 200); zieht eine Zufallszahl zwischen 200 und 204 x3 = ((int) (Math.random() * 5) ) * ; zieht eine Zufallszahl, die die Werte 10, 110, 210, 310,410 annehmen kann In der Klasse Gui musst du noch dafür sorgen, dass die 5 Sterne erzeugt und in der Methode paint() jeweils neu gezeichnet werden. Dazu werden jeweils die Methoden getsternx() und getsterny() benötigt, die die Koordinaten der Sterne zurückliefern. Probiere aus, ob die Sterne tatsächlich an passenden Positionen zu sehen sind. Zusatzaufgabe 2: Der Punktstand soll immer um 10 erhöht werden, wenn Mario ein Stern berührt hat. 29
Greenfoot: Verzweigungen
Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein
Mehr8.6 Visualisierung der Sortieralgorithmen
8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrGreenfoot: Verzweigungen Nicolas Ruh und Dieter Koch
Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein
MehrWorkshop zu Folge 9.3 Überarbeitete Version vom Mai 2016
Workshop zu Folge 9.3 Überarbeitete Version vom Mai 2016 Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes.
MehrPraktikum 4: Grafiken und Ereignisse
Praktikum 4: Grafiken und Ereignisse Aufgabe 1: Java Applikation Bisher haben wir in Java (ebenso wie in C) jeweils selbständige Konsole-Applikationen erstellt. Java wurde als Programmiersprache für das
Mehr- EINSTIEG IN JAVA - (1/5) Datum:
- EINSTIEG IN JAVA - (1/5) Datum: 2.2 Wir lernen die Programmiersprache Java und entwickeln ein Computerspiel Schritt #1: Constructor-Methoden: Wir setzen die beiden Spieler in die 'Welt' (das Spielfeld)
MehrProjekt: Staubsauger-Roboter
Projekt: Staubsauger-Roboter Ziel: Programmiere einen Staubsauger-Roboter, der von einer einfachen künstlichen Intelligenz (KI) gesteuert wird und dabei den Boden eines Raumes reinigt. Hinweise: Die Anleitung
MehrKapitel 18 Jetzt kommt Bewegung ins Spiel
Kapitel 18 Jetzt kommt Bewegung ins Spiel Seite 1 / 10 Kapitel 18 Jetzt kommt Bewegung ins Spiel Lernziele: In diesem Kapitel lernst du das Importieren von Java-Bibliotheksklassen. Wiederholung: Bei den
MehrStaubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.
Projekt: Staubsauger-Roboter Immer beliebter werden die kleinen automatischen Haushaltshilfen. Du sollst nun einen Staubsauger-Roboter programmieren, der gesteuert von einer künstlichen Intelligenz (KI)
MehrEinführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch
Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative
MehrEinführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch
Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative
Mehr1 - EIN NEUES GAMEGRID ANLEGEN
1 - EIN NEUES GAMEGRID ANLEGEN EIN NEUES GAMEGRID ANLEGEN 1. Schritt: Ein neues Java-Projekt anlegen: 2. Schritt: Namen des Projekts angeben und auf Next klicken (Achtung: Nicht auf Finish klicken) 3.
MehrFlappy Bird Greenfoot Station 1: Flappy erstellen und bewegen
Flappy Bird Greenfoot Station : Flappy erstellen und bewegen In diesem Arbeitsblatt geht es darum, dass bekannte Spiel Flappy Bird zu erstellen, indem das Spielfeld erstellt wird. Flappy erstellt wird.
MehrDurch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.
Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung
MehrSpace Shooter. Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.
Space Shooter 1. Grundlegende Funktionen Lade das Szenario SpaceShooter-0. In diesem Spiel soll zunächst nur Folgendes geschehen: Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.
MehrWenn, wenn und noch mal wenn
OOP Henrik Horstmann 23. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Das Spiel...2 3 Das Spielfeld...2 4 Jetzt kommt der Ball ins Spiel...3 4.1 Der Ball kommt ins
Mehr7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:
7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines Spiels werden von den 10 besten Spielern die Namen
Mehr1) Wie erstelle ich ein neues Programm? 2) Wie füge ich ein neues Objekt hinzu? 3) Wie starte ich mein Programm?
1) Wie erstelle ich ein neues Programm? 2) Wie füge ich ein neues Objekt hinzu? 3) Wie starte ich mein Programm? 4) Wie platziere ich mein Objekt auf der Bühne? Erstelle dafür ein neues Programm. In diesem
MehrGraphical User Interfaces
Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard
MehrGraphische Benutzungsoberflächen mit Java. Einführung in NetBeans
Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung
Mehr2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
MehrEAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ
EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,
MehrFlappy Bird BlueJ Station 1: Flappy erstellen und bewegen
Flappy Bird BlueJ Station 1: Flappy erstellen und bewegen In diesen Arbeitsblatt geht es darum, dass Flappy erstellt wird. Flappy sich automatisch nach unten bewegt. die Tastatur benutzt werden kann, um
MehrCreated by Michael Kirsch & Beat Rossmy
PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK Created by Michael Kirsch & Beat Rossmy INHALT 1. Sto der Vorlesung 1. Processing Basics 2. Übung 1. Aufgabe 1 2. Strings & Arrays 2. Aufgabe 1-A 3. Klassen
MehrKapitel 1: Die ersten Schritte 1
Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte 1 Starten Sie Eclipse. Importieren Sie das Eclipse-Projekt scenarios-chapter-1. Gehen Sie in den Unterordner
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrSilke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch
MehrActionscript Kleine Programme Fragen & Aufgaben
Verständnisfragen 1. Eine Variable des Typs Number mit Namen superzahl soll deklariert werden und den Wert 77 zugewiesen bekommen. Wie sieht der Code aus? 2. Wann braucht es ein einzelnes Gleichheitszeichen,
Mehrimport JavaKaraProgram; public class Quadrat extends JavaKaraProgram { // Anfang von Quadrat void turnaround() { kara.turnleft(); kara.
Informatik 11: Einführung in Java Kara legt Muster!(Lsg.) Gierhardt Aufgaben: 1. KARA soll ein mit Kleeblättern gefülltes Quadrat mit variabler Seitenlänge ablegen. Der Methodenaufruf quadratzeichnen(5)
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
Mehr11. GUI-Programmierung mit SWING Überblick
11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 16. Java: Threads für Animationen 1 Motivation
MehrObjektorientierte Programmierung
Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren
Mehr3. Bedingte Anweisungen
3. Bedingte Anweisungen Fallunterscheidungen der Form WENN...DANN... in der Informatik kennst du aus der 7. Klasse beim Programmieren mit Karol sowie aus der 9. Klasse beim Arbeiten mit Tabellen und Datenbanken.
MehrIn dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.
In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es. Im Spiel fällt ein Meteor vom oben zum unteren Rand. Das Raumschiff
MehrGrafische Benutzeroberflächen
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Aufgabe Ein Benutzer soll
Mehrtdaten=record name : string; alter: integer; groesse:real; end;
tdaten=record - Zugriff auf Felder (name, alter, groesse) über externe Methoden, die für jede Unit und jede Variable dieses Records neu geschrieben werden müssen - Zugriff nicht kontrollierbar (immer Schreib-
MehrDer Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.
Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrJava Kurzanleitung Kapitel 1 Kontrollstrukturen:
Java Kurzanleitung Kapitel 1 Kontrollstrukturen: 1. If-Befehl (Bedingte Anweisung) Die bedingte Anweisung besteht aus einer Bedingung, deren Wahrheitswert wahr oder falsch sein kann. Ist der Wahrheitswert
Mehr16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz
16 Zeichnen in Swing-Komponenten 2009 2014, Prof. Dr. D. Ratz 16.1 Grafische Darstellung von Komponenten Der Repaint-Manager sorgt für die grafische Darstellung der Komponenten Aktivierung beim erstmaligen
MehrHochschule der Medien Prof. Uwe Schulz 13. Juli 2009 Klausur Informatik, EDV-Nr Seite 1 von 6. Teil 2: Aufgaben
Hochschule der Medien Prof Uwe Schulz 13 Juli 2009 Klausur Informatik, EDV-Nr 40301 Seite 1 von 6 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: Bearbeitungszeit: alle außer tragbare Computer und Nachbar
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
Mehr1 Grundlagen der Objektorientierung
Kapitel 1 Grundlagen der Objektorientierung Seite 1/8 1 Grundlagen der Objektorientierung Dieses Kapitel stellt eine solide, pragmatische Einführung in die fundamentalen Konzepte der Objektorientierung
MehrFolienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrMethoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik
Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrProgrammieraufgaben. 1. Hello World! Schreibe ein Programm, dass auf der Konsole den Text Hello World! ausgibt.
Programmieraufgaben 1. Hello World! Schreibe ein Programm, dass auf der Konsole den Text Hello World! ausgibt. 2. Netto-Brutto-Rechner: Schreibe ein Programm, bei dem der Nutzer einen Preis ohne Steuer
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrGrafische Benutzeroberflächen
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrGrafische Benutzeroberflächen
Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
Mehr7.5 Mit bunten Kreisen spielen
Workshop (fakultativ) 7.5 Mit bunten Kreisen spielen In diesem fakultativen Workshop wollen wir mit Objekt-Arrays arbeiten. Sie erinnern sich an die Klasse Kreis, die wir in der Folge 5 konstruiert hatten.
MehrÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG
ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG Unter objektorientierter Modellierung versteht man das detailgetreue Darstellen einer zu programmierenden Szene durch Skizzen in UML. UML steht für Unified Modelling
MehrHochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben
Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:
MehrInstitut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
Mehr2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
MehrOOP. Felder von Objekten. Henrik Horstmann
OOP Henrik Horstmann 23. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Was ist eine Feldvariable?...2 2.1 Feldvariablen deklarieren...2 2.2 Anlegen einer Feldvariable...3
MehrJAVA für Nichtinformatiker - Probeklausur -
JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrVererbung in der objektorientieren Programmierung
Vererbung in der objektorientieren Programmierung Stage Stage(title:String,width:Integer:height:Integer) addstageobject(obj:stageobject) getheight():integer getstageobjectbyname(id:string) getwidth():integer
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrOOP. Wenn Computer Erben. Henrik Horstmann
OOP Henrik Horstmann 2. Dezember 2015 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Die Erben...2 2.1 Das Beispiel...2 2.2 Gemeinsamkeiten...2 2.3 Unterschiede...3 3 Lösung durch
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
MehrParallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:
Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:
MehrArbeitsblatt 6: Programmierung geometrischer Figuren
Arbeitsblatt 6: Programmierung geometrischer Figuren Die Karten, auf denen die Lärmmessungen dargestellt werden, bestehen aus einer Vielzahl geometrischer Formen. Diese geometrischen Formen ergeben zusammen
Mehr/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();
Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,
MehrMIA INFORMATIK Scratch Übungen
Übung 1: Fledermaus-Spiel Gemeinsam mit L am Beamer: Spiel Fledermaus-Klicken: siehe Blatt Programmieren mit Scratch Einführung Übung 2: Ball - Figur: Basketball (andere Figuren löschen) / Ausgangsposition
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrEinführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch
Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative
MehrÜbung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301
Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301 Aufgabe 8: Implementierung eines Ereignis-Automaten a) Modellieren Sie einen Ereignis-Automaten für den in der Abbildung dargestellten und in Calculator.java
MehrPacBoy steuern, Bild auswählen, fillworld() ( PacBoy_00) public class PacBoy extends Actor { public void act() { // Tasten prüfen: this.
OOP: PACBOY Das Spiel, das wir programmieren werden, orientiert sich am legendären Spiel Pac-Man aus dem Jahr 1980. Ein gelber Smiley bewegt sich durch ein Labyrinth und sammelt Früchte auf. Dabei darf
MehrProgrammieren mit xlogo
Programmieren mit xlogo XLogo ist eine einfache Programmiersprache um die Grundbegriffe des Programmierens zu erlernen. Wir wollen hier der Frage nachgehen, was Programmieren überhaupt ist. Ich möchte
MehrObjektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java
9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet
Mehr5 Das Projekt Apfelwein
Kapitel 5 Zustandsorientierte Modellierung (Teil 1) Seite 1 5 Das Projekt Apfelwein Bemerkung: In der 10. Jahrgangsstufe (G8) werden die Schüler in die zustandsorientierte Programmierung eingeführt. Dies
MehrKlassen-Diagramm. spielt mit > 1. schlägt mit > 1. hat als Rand > enthält > 1. besteht aus >
Inf-10 NTG Objektorientiertes Programmieren Proje kt Breakout StR ef F l ori an Fuc hs, OSt R Mic hae l Ganshorn 1 JAVA-Projekt : Das Spiel Breakout Eines der beliebtesten Spiele der späten 1970er Jahre
MehrGrundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte
Grundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte Erklärungen zu Methoden- Parametern Kara soll vor sich eine Spur von x Kleeblättern legen. Die Anzahl x sei variabel. Karas
Mehr14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
MehrFachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4
Hochschule der Medien Klausur Informatik, EDV-Nr. 40301(42021) Seite 1 von 4 Name: Matr. Nr.: Note Teil 1: Keine Hilfsmittel! Bearbeitungszeit: 20 Minuten Frage Stichwort Punkte 1 Schleife 2 2 Code-Fragment
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrWuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int
Informatik Eph IFG1/2 (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Kniffel Modellierung und Implementierung Im Folgenden sollen Teile eines kleinen "Kniffel"-Spiels modelliert, analysiert und implementiert
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
MehrDokumentation des Projektes Tic Tac Toe
Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.
MehrSoftwaretechnik (Medieninformatik): GUIs mit Swing Überblick
Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten
Mehr