<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.149.23.252</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.149.23.252"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/130.149.23.252"/>
	<updated>2026-11-02T16:00:11Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)&amp;diff=4353</id>
		<title>Informatik 4 (StuPO90)</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)&amp;diff=4353"/>
		<updated>2007-05-22T16:02:46Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: /* Links */ Info zu Passwort überarbeitet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;klausuren&amp;quot; style=&amp;quot;float:right; width:20%; margin:10px; padding:10px; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Klausuren&amp;lt;/h3&amp;gt;&lt;br /&gt;
SS 2006&lt;br /&gt;
* [[Informatik 4 (StuPO90)/Stichpunkte zur Klausur SoSe 2006|vor-Klausur-Infos]]&lt;br /&gt;
* [[Informatik B (StuPO90)/Mündliche Prüfung SoSe 2006|Gedächtnisprotokoll Mündliche Prüfung]]&lt;br /&gt;
&lt;br /&gt;
SS 2005&lt;br /&gt;
* [[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2005|Gedächtnisprotokoll]]&lt;br /&gt;
* [[Informatik 4 (StuPO90)/Stichpunkte zur Klausur SoSe 2005|vor-Klausur-Infos]]&lt;br /&gt;
&lt;br /&gt;
WS 2002/2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Informatik_4/Klausurfragen03.pdf Klausur]&lt;br /&gt;
&lt;br /&gt;
WS 2001/2002&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Informatik_4/ws0102.pdf Klausur]&lt;br /&gt;
&lt;br /&gt;
WS 2000/2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Informatik_4/ws0001.pdf Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Informatik_4/ss00.pdf Klausur]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{EntsprechungB|[[MPGI 2 (Bachelor)]] und [[TechGI 3 (Bachelor)]]}}&lt;br /&gt;
&lt;br /&gt;
Informatik 4 ist der vierte Teil der [[Informatik (Vorlesung)|Informatik-Vorlesungen]] im [[Grundstudium Informatik]].&lt;br /&gt;
&lt;br /&gt;
= Inhalt =&lt;br /&gt;
* Hardwarenahe Programmierung mit Assembler&lt;br /&gt;
* Parallele Programmierung in Java&lt;br /&gt;
* ...&lt;br /&gt;
* Assembler &lt;br /&gt;
* Einf. Betriebssysteme&lt;br /&gt;
* Nebenläufigkeit und Synchronisation&lt;br /&gt;
* Prozeßbeschreibung&lt;br /&gt;
* Prozeßverwaltung&lt;br /&gt;
* Leichtgewichtige Prozesse&lt;br /&gt;
* Betriebssystem-Kern&lt;br /&gt;
* Schloßvariablen &lt;br /&gt;
* Semaphore&lt;br /&gt;
* Monitore&lt;br /&gt;
* Nachrichten&lt;br /&gt;
* Kommunikationskanäle&lt;br /&gt;
* Prozedurfernaufrufe&lt;br /&gt;
* Ein- und Ausgabe&lt;br /&gt;
* Speicherverwaltung&lt;br /&gt;
* Betriebsmittelvergabe&lt;br /&gt;
&lt;br /&gt;
= Tipps =&lt;br /&gt;
Man muss am Anfang Assembler für die 68000er Plattform von Motorola schreiben. Das geht hier an der Uni nur im Raum EN 268 für den man den jeweiligen Semester-Tür-Code braucht.&lt;br /&gt;
Einfacher und vielleicht auch Lehrreicher ist es den Assemblercode in einem Emulator auszuführen, da man dort z.B. auch genau in die Register hineinschauen kann. Einen solchen Simulator gibts hier:&lt;br /&gt;
&lt;br /&gt;
Motorola 68K Simulator sind mir zwei bekannt: [http://www.informatik.fh-mannheim.de/~ihme/rurd_2005ss/M68k-Programmierung.html BSVC] ([http://ds2.etech.fh-hamburg.de/snd/bsvc.html auch hier]) der theoretisch auch unter Unix läuft und [http://www.monroeccc.edu/ckelly/EASy68K.htm Easy68k] der leider nur unter Windows läuft, dafür aber schöne Dokumentation zu dem 68k Assembler enthält.&lt;br /&gt;
&lt;br /&gt;
BSVC kompiliert auf neueren System evtl. nicht problemlos. [http://user.cs.tu-berlin.de/~felixf/bsvc/README Hier] steht wie es mit Hilfe eines Patches geht, der die Änderungen von [http://www.mdlug.de/bibo/knowhow/prog/howto-bsvc.shtml] und noch etwas mehr in den Quellcode integriert.&lt;br /&gt;
&lt;br /&gt;
Die Assembler Referenz gibt der Lehrbereich nur in gedruckter Form heraus - die [http://www.informatik.fh-mannheim.de/~ihme/Software/BSVC/68k_manual.pdf gibt es anderswo aber auch als PDF].&lt;br /&gt;
&lt;br /&gt;
Zum Thema Semaphoren gibt es [[{{PAGENAME}}/Semaphoren|hier im Wiki eine eigene alternative Erklärung]], die viele Info 4 Teilnehmer einfacher verständlich finden.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* [http://pdv.cs.tu-berlin.de/Info4-SS2007/ Informatik 4 (SS07)]&lt;br /&gt;
* [http://pdv.cs.tu-berlin.de/ Fachgebiet Prozessdatenverarbeitung]&lt;br /&gt;
* [http://pdv.cs.tu-berlin.de/Info4-SS2007/folien/ Folien SS2007 (Passwort-geschützt, Passwort in der Lehrveranstaltung oder per Nachfrage erhältlich)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lehrveranstaltungen]]&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=TheGI_1_(Bachelor)&amp;diff=8083</id>
		<title>TheGI 1 (Bachelor)</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=TheGI_1_(Bachelor)&amp;diff=8083"/>
		<updated>2007-05-03T11:46:33Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;klausuren&amp;quot; style=&amp;quot;float:right; width:20%; margin:10px; padding:10px; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Klausuren&amp;lt;/h2&amp;gt;&lt;br /&gt;
WiSe 2006/2007&amp;lt;br&amp;gt;&lt;br /&gt;
TheGI&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/TheGI_1_Bachelor/ws06_beispielklausur.pdf Beispiel-Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/TheGI_1_Bachelor/ws06_beispielloesung.pdf Beispiel-Lösung]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/TheGI_1_Bachelor/ws06_beispielalgebra.pdf Beispiel-Algebra]&lt;br /&gt;
Redundantikum&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/TheGI_1_Propaedeutikum/ws06_vorbereitende_aufgabenstellung.pdf Recherche Themen]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/TheGI_1_Propaedeutikum/siebzig_fragen.pdf Recherche Hilfen]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Theoretische Grundlagen der Informatik 1: Grundlagen und algorithmische Strukturen&#039;&#039;&#039; ist eine Pflichtveranstaltung im ersten Semester des [[Lehrveranstaltungen Informatik|Studiengangs Informatik]] nach neuer [[StuPO Informatik|Bachelor-StuPO]]. Sie besteht aus 2 SWS [[Vorlesung]], 2 SWS [[Übung]] und 2 SWS [[IV|Integrierter Veranstaltung]] und entspricht 8 [[ECTS]]-Leistungspunkten.&lt;br /&gt;
Die [[IV|Integrierte Veranstaltung]] bestand im Wintersemester 06/07 aus der Propädeutikums Vorlesung, welches von Prof. Mahr gehalten wurde.&lt;br /&gt;
&lt;br /&gt;
== Inhalt ==&lt;br /&gt;
Den kompletten Inhalt der Propädeutikums-Vorlesung findet man auf der unten aufgeführten Webseite. Hier eine kleine Übersicht, was man sich unter dieser Veranstaltung vorzustellen hat.&amp;lt;br&amp;gt;&lt;br /&gt;
Im einen Teil der Veranstaltung geht es um Dinge wie &amp;quot;Schreiben, Schrift und Sprache&amp;quot;, oder &amp;quot;Beobachtung und Erkenntnis&amp;quot;. Zusammenfassend kann man sagen, es geht um das Aufschreiben, Austauschen und Bearbeiten von Gedanken. Es wird durchaus interessant und erfolgreich versucht, den Blick etwas mehr zu weiten von aktuellen und konkreten Problemen der Informatik, um einen Überblick über &amp;quot;das Ganze&amp;quot; zu geben.&amp;lt;br&amp;gt;&lt;br /&gt;
Durchaus wichtiger für die Klausur ist der letzte (sehr viel kleinere) Teil der Vorlesungen. Es sind vor allem die Vorlesungen &amp;quot;Wie recherchiert man?&amp;quot; und &amp;quot;Wie hält man einen Vortrag?&amp;quot; von Interesse. Hier gehts nämlich um genau das, was für die Klausur wichtig ist!&lt;br /&gt;
&lt;br /&gt;
Da es für Leute wie mich (erster Bachelor Jahrgang) relativ undurchsichtig war, was denn nun in der Klausur verlangt wird, will ich hier versuchen, ein wenig über den Ablauf und das zusammenzufassen, was für die Klausur wichtig war.&lt;br /&gt;
In der Klausur im WS06/07 wurde ca. 6 Wochen vorher ein Recherche-Auftrag erteilt. Es sollte über folgende Themen recherchiert werden:&lt;br /&gt;
* Alan Turing&lt;br /&gt;
* Automatentheorie&lt;br /&gt;
* Das P=NP Problem&lt;br /&gt;
* Induktionsproblem&lt;br /&gt;
* Die Programmiersprache OPAL&lt;br /&gt;
* Das Betriebssystem LINUX&lt;br /&gt;
* Das Studienfach Informatik&lt;br /&gt;
Es sollten &#039;&#039;eigene&#039;&#039; Aufzeichnungen angefertigt werden, welche auch zur Klausur mitgenommen werden konnten. Der Umfang war nicht direkt vorgegeben, allerdings sollten 3 Seiten pro Thema ausreichen um alles was erfragt werden konnte auch beantworten zu können.&lt;br /&gt;
In der Klausur wurden dann 4 dieser Themen abgefragt (in der Klausur vom WS 06/07 waren dies Alan Turing, P=NP Problem, Induktionsproblem, das Studienfach Informatik).&amp;lt;br&amp;gt;&lt;br /&gt;
Zum einen sollte eine kleine (15-20 Zeilen) Zusammenfassung in eigenen Worten gegeben werden. Dann ein &amp;quot;persönliches Interesse&amp;quot; hervorgehoben werden (5-10 Zeilen) und zuletzt noch 10 Fragen beantwortet werden. Dies selbsverständlich zu jedem Thema.&amp;lt;br&amp;gt;&lt;br /&gt;
Vor dem Austeilen der Klausur wurde noch darauf hingewiesen, das die Fragen nicht so ausschlaggebend sind, sondern die eigene Zusammenfassung durchaus genügend Punkte gebe.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Nach meiner &#039;&#039;&#039;Meinung&#039;&#039;&#039; liefen hier im Vorfeld leider einige Dinge schief. Zum einen war das Konzept der Klausur wohl nicht von Beginn an festgelegt. So hieß es hier zuerst, es werde ein Multiple Choice Test, dann wurden es einfache Fragen und beim Austeilen der Klausur wurde dann eröffnet, das auch eine eigene Zusammenfassung zu leisten ist. Ebenso war die Quellenangabe von höchster Wichtigkeit! So wurde durchaus (wenn auch nicht direkt gesagt) erwartet, das man verschiedene Bücher, Webseiten etc. zu jedem Thema mit aufführt! Viele der konkreten Fragen waren nicht durch eine kleine Recherche zu beantworten, sondern hätten durchaus tiefergehender Nachforschungen bedurft. Last but not least war ein Thema dann Induktion (mathematische Anwendung) und nicht das Induktionsproblem (eine phiosophische Frage).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Zusammenfassend&#039;&#039;&#039; lässt sich sagen, man sollte zu jedem Thema folgende Dinge vorbereitet haben:&lt;br /&gt;
* Eine kleine Zusammenfassung in eigenen Worten, mit möglichst vielen Fakten (Form relativ unerheblich).&lt;br /&gt;
* Etwas Besonderes zu jedem Thema herausarbeiten (z.B., dass Verschlüsselung wie &amp;quot;Public Key&amp;quot; durch Lösen des P=NP Problems möglicherweise unbrauchbar wird).&lt;br /&gt;
* Viele, viele Quellen zusammentragem!&lt;br /&gt;
* Einige Fakten kurz und knackig griffbereit haben (für konkrete Fragen wie &amp;quot;Kann  das P=NP Problem durch technische Fortschritte gelöst werden?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tipps und nützliche Infos ==&lt;br /&gt;
* TheGI 1 deckt nicht den gesamten Stoff des früheren [[TheGI 2 (StuPO90)]], wird dafür aber um einen Teil über formale Sprachen ergänzt.&lt;br /&gt;
* TheGI1 Webseite: http://tfs.cs.tu-berlin.de/lehre/2006WS/thegi1/&lt;br /&gt;
* Propädeutikums Webseite: http://flp.cs.tu-berlin.de/lv/wise-0607-thegi1_propaedeutikum.html&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
Für das gesamte Semester und auch für [[TheGI 3 (Bachelor)|TheGI 3]] und [[TheGI 4 (Bachelor)|TheGI 4]] ist das Buch &amp;quot;[http://www.amazon.de/exec/obidos/ASIN/3540419233/thetruth0e Ehrig, Mahr: Mathematisch-strukturelle Grundlagen der Informatik]&amp;quot; (Springer Verlag, ISBN [http://de.wikipedia.org/w/index.php?title=Spezial:Booksources&amp;amp;isbn=3540419233 3-540-41923-3]) praktisch Pflicht.&lt;br /&gt;
&lt;br /&gt;
Das Buch gibt es auch in großer, aber nie ausreichender Stückzahl in der [[Bibliothek]] (Hinweis: Die Bibliothek beschafft auch neue Bücher, wenn der vorhandene Bestand nicht ausreicht. Dafür ist aber manchmal eine freundliche E-Mail nötig). Wenn man an das Buch nicht ran kommt, ist das [http://user.cs.tu-berlin.de/~buchholz/frwiki/skript98.2up.ps Skript von 1998] immerhin besser als nichts. Wer nur die erste Auflage (1999) des Buches bekommen hat, der findet die neuen Kapitel hier: [http://tfs.cs.tu-berlin.de/lehre/SS02/Thegi2/rep.alg.ps 8], [http://tfs.cs.tu-berlin.de/lehre/SS02/Thegi2/alg.spec.ps 11], [http://tfs.cs.tu-berlin.de/lehre/SS02/Thegi2/spec.impl.ps 12].&lt;br /&gt;
&lt;br /&gt;
== Persönliche Kommentare ==&lt;br /&gt;
&lt;br /&gt;
{{EntsprechungD|[[TheGI 2 (StuPO90)]] (Ja, richtig: Hier gab es eine Drehung)}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Lehrveranstaltungen]]&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Felix-friedrich&amp;diff=10045</id>
		<title>Benutzer:Felix-friedrich</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Felix-friedrich&amp;diff=10045"/>
		<updated>2007-04-13T12:28:55Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: [[Benutzer:Felixf]]&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Felix-friedrich&amp;diff=10044</id>
		<title>Benutzer:Felix-friedrich</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:Felix-friedrich&amp;diff=10044"/>
		<updated>2007-04-13T12:28:29Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: [Benutzer:Felixf]&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2007/%C3%9Cbungspool&amp;diff=9569</id>
		<title>Javakurs2007/Übungspool</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs2007/%C3%9Cbungspool&amp;diff=9569"/>
		<updated>2007-04-11T13:46:23Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir haben jeder Aufgabe eine Einschätzung ihrer Schwierigkeit auf einer Skala von 1 bis 10 vorangestellt. Bei dieser Einschätzung sind wir von einem Gehirn ausgegangen, für welches das jeweilige Themengebiet völlig neu ist, das jedoch schon ein ganz gutes Verständnis dafür hat wie eine Programmiersprache denn so funktioniert. &lt;br /&gt;
Entsprechend kann eine schwer bewertete Aufgabe aus einem frühen Themengebiet für manch einen sehr einfach oder eine leicht bewertete aus einem späten Themengebiet für einen anderen sehr schwer sein. Es ist nur ein Wert, der euch helfen soll eure nächste Aufgabe zu wählen. Einen kleinen Überblick zu den Schwierigkeitsgraden findet ihr ganz unten auf dieser Seite.&lt;br /&gt;
&lt;br /&gt;
Falls ihr Anmerkungen zu den Aufgaben habt, könnt ihr die Diskussionsseiten der jeweiligen Aufgaben nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
 |- bgcolor=&amp;quot;#D8D8D8&amp;quot;&lt;br /&gt;
 !Aufgabe&lt;br /&gt;
 !Schwierigkeit&lt;br /&gt;
 !Vorwissen&lt;br /&gt;
 !Lerneffekte&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Von der Console zum HelloWorld | Vom Arbeiten mit der Konsole bis &amp;quot;Hallo Welt&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Einfaches Arbeiten mit der Kommandozeile &amp;lt;br&amp;gt; Kompilieren und Ausführen von Javacode&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Variablen_und_Zuweisungen | Variablen und Zuweisungen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Deklarieren und definieren von Variablen&amp;lt;br&amp;gt;grundlegende Regeln der Codeformatierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cowsay | Cowsay oder &amp;quot;Wie macht die Kuh?&amp;quot;]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | etwas mehr Bildschirmausgabe&amp;lt;br&amp;gt;schöne Graphiken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Kassenbon | Erstellen eines Kassenbons]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Arbeiten mit Variablen&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Javamenue | Ein eigenes Menü]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Lesen von Benutzereingaben über die Konsole&amp;lt;br&amp;gt;Fallunterscheidungen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Glücksspiel | Glücksspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |1. VL&lt;br /&gt;
 | Anwenden von Fallunterscheidungen &lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Arrays | Quickies Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwenden von Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Verschachtelte_Schleifen | Verschachtelte Schleifen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Umgang mit mehreren verschachtelten Schleifen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Primzahlenaufgabe | Primzahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2-5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Geschicktes Einsetzen von Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Wetterstation | Wetterstation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Geometrie | Geometrie]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Methoden schreiben&amp;lt;br&amp;gt;schreiben mathematischer Funktionen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zweierpotenzen | Zweierpotenzen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schleifen_und_Modulo | Schleifen und Modulo]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2. VL&lt;br /&gt;
 | Verwendung von Schleifen&amp;lt;br&amp;gt;Benutzung des Modulo-Operators&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Methoden | Quickies zu Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwenden von Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/MathematischeMethoden | Eigene Methoden]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben eigener Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Schaltjahr | Schaltjahr]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schreiben von Methoden&amp;lt;br&amp;gt;Fallunterscheidungen&amp;lt;br&amp;gt;Benutzerinteraktion&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Crack_the_Password | Crack the Password]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |2/3. VL&lt;br /&gt;
 | Passwörter knacken ;-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Rekursion_vs._Iteration | Rekursion vs. Iteration]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Lineare_Funktionen | Lineare Funktionen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Verwendung von Methoden&amp;lt;br&amp;gt;Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Fibonacci | Fibonaccizahlen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen und Arrays&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Brainfuck | Brainfuck vs Turingmaschine]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Arrays&amp;lt;br&amp;gt;Allgemeinwissen :-)&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Gau%C3%9F-Algorithmus | Gauß-Algorithmus]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arrays und Matrizen&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Zahlenumrechner | Zahlenumrechner]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs 2007/Democracy | Der Fehler im System]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Fehler finden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Quersumme | Spaß mit Quersummen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5 - 7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Benutzung des Modulo-Operators&amp;lt;br&amp;gt;Auslagern von Funktionalität in Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Appleman | Appleman und Fraktale]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | Schleifen, Umgang mit Fließkommazahlen&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/DiffusionLimitedAggregation | Diffusion Limited Aggregation]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3. VL&lt;br /&gt;
 | 2-dimensionale Arrays, Methoden, Schleifen&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Palindrome | Palindrome]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |3&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Parameterübergabe beim Programmaufruf&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Hangman | Hangman]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Entwurf von Programmen&amp;lt;br&amp;gt;Arbeiten mit Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/SelectionSort | Selection Sort]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Verstehen von komplexeren Algorithmen&amp;lt;br&amp;gt;Schleifen und Arrays&amp;lt;br&amp;gt;(Hilfs-)Methoden&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Cäsar-Chiffre | Chiffrierung/Dechiffrierung (Cäsar)]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |9&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | eigenständiges Problemlösen. &amp;lt;br&amp;gt; Alle Konzepte des Kurses&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Abzaehlspiel | Abzählspiel]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4. VL&lt;br /&gt;
 | Analyse von Aufgabenstellungen&amp;lt;br&amp;gt;Entwurf eines komplexen Programms von Grund auf&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2006/Rennschnecke | Schneckenrennen]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Objektorientierte Programmierung&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Studentendatenbank_LE5 | Studentendatenbank]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |4&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Vertiefung in objektorientiertes Programmieren&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Multiarray| Mehrdimensionale Arrays]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |10&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5. VL&lt;br /&gt;
 | Methoden, Schleifen, Arrays&amp;lt;br&amp;gt;Objektorientierung&lt;br /&gt;
&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Canvas | Virtuelles Canvas mit 3D-Objekten]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |5&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Arbeiten mit Methoden&amp;lt;br&amp;gt;mathematisches Denken&lt;br /&gt;
 |- bgcolor=&amp;quot;#F5F5F5&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Doom | ASCII DOOM ]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |8&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | Vertiefung in objektorientierte Programmierung&amp;lt;br&amp;gt;Benutzung der Java-API&lt;br /&gt;
 |- bgcolor=&amp;quot;#E8E8E8&amp;quot;&lt;br /&gt;
 | [[Javakurs2007/Textwordcount | Texte lesen und analysieren]]&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |7&lt;br /&gt;
 | align=&amp;quot;center&amp;quot; |6. VL&lt;br /&gt;
 | eigenständiges Problemlösen&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aufgaben als PDF ==&lt;br /&gt;
Alle Aufgaben in einer PDF-Datei gibt es hier:&lt;br /&gt;
[http://www.freitagsrunde.org/~kai/aufgaben_javakurs2007.pdf http://www.freitagsrunde.org/~kai/aufgaben_javakurs2007.pdf]&lt;br /&gt;
&amp;lt;br/&amp;gt;(Stand: 10.04.2007 07:00, 79 Seiten, 309kB)&lt;br /&gt;
&lt;br /&gt;
== Schwierigkeitsgrade ==&lt;br /&gt;
&lt;br /&gt;
#  Reines Tutorial. Man muss nicht viel selbst denken&lt;br /&gt;
#  ...&lt;br /&gt;
#  Leichte Übungsaufgabe. Studies, die noch eher unsicher sind werden hier gut begleitet.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Typische Aufgabe. Man muss den Kopf benutzen, bekommt an schwierigen Stellen aber Hilfestellungen.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Herausfordernd, eher etwas für Studies die etwas fitter sind.&lt;br /&gt;
#  ...&lt;br /&gt;
#  Auch erfahrene Programmierer weden hier ein bis zwei Übungen beschäftigt sein&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#  Tja, die Idee war da. Wir finden sie auch gut, aber es könnte wirklich anstrengend werden.&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9606</id>
		<title>Javakurs/Übungsaufgaben/Doom</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9606"/>
		<updated>2007-04-11T13:44:46Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: /* class GameMain Teil 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ASCII-DOOM&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
In Ascii-Doom geht es darum, ein kleines Spiel zu implementieren, mit ASCII Grafiken. Es wird&lt;br /&gt;
möglich sein, mit einer Spielfigur auf dem Spielfeld zu laufen, später könnt ihr auch&lt;br /&gt;
Items, Waffen und [http://venus.provocateuse.com/images/photos/liv_tyler_01.jpg Liv Tyler] einbauen! Wir werden Klasse für Klasse das Spiel implementieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain ist die Klasse, die die main Methode enthalten wird und somit ausführbar ist.&lt;br /&gt;
	&lt;br /&gt;
* Sie wird die Schnittstelle zur Außenwelt sein und die Ausgabe auf die Konsole tätigen.&lt;br /&gt;
&lt;br /&gt;
* Erstellt zunächst nur diese Klsse. Sobald ihr Klassen aus den späteren Aufgaben implementiert habt, könnt ihr in der main-Methode ihre Funktionalität testen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class Position Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Position repräsentiert eine Position auf einem 2D-Spielfeld.&lt;br /&gt;
&lt;br /&gt;
* Enthält private Attribute x und y, gekapselt mit gettern/settern.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine equals-Methode, die 2 Positions vergleicht.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer equals!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameTile Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* GameTile repräsentiert ein Tile (ein Feld) im späteren Spiel.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable, die für den Typ des Feldes steht (am besten ein int).&lt;br /&gt;
** 1 entspricht wand&lt;br /&gt;
** 2 entspricht leer &lt;br /&gt;
			&lt;br /&gt;
* Also auch hier braucht ihr Getter und Setter.&lt;br /&gt;
&lt;br /&gt;
* Enthält außerdem eine private Variable vom Typ Position, welche die Position des GameTiles auf dem Feld speichert.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine toString-Methode, die jedem GameTile einen String mit Länge 1 zuordnet.&lt;br /&gt;
** wand = &amp;quot;x&amp;quot;&lt;br /&gt;
** leer = &amp;quot; &amp;quot;&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer toString.&#039;&#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GameField ist eine zentrale Klasse in diesem Spiel, sie repräsentiert das Spielfeld als Ganzes und besteht aus GameTiles.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable für das Level (2D-Array aus GameTiles). &lt;br /&gt;
	&lt;br /&gt;
* Über den Konstruktor wird ein String dieser Form übergeben(ebenso seine Breite und Höhe): 		&lt;br /&gt;
        String s = &amp;quot;########&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;###    #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;########&amp;quot;;&lt;br /&gt;
** Es soll mit einer Schleife der String Zeichen für Zeichen ausgelesen werden und aus jedem Zeichen ein neues GameTile (fest oder leer) erzeugt werden. Diese GameTiles werden dann in dem Array gespeichert!&lt;br /&gt;
** Wie man Strings Zeichen für Zeichen ausliest, findet ihr in der API (java.lang.String).&lt;br /&gt;
** Implementiert ein toString, dieses soll folgenden String liefern: 	&lt;br /&gt;
 		  12345678&lt;br /&gt;
 		1 ######## &lt;br /&gt;
 		2 #      #&lt;br /&gt;
 		3 #      #&lt;br /&gt;
 		4 ###    #&lt;br /&gt;
 		5 #      #&lt;br /&gt;
  		6 ########&lt;br /&gt;
** Tipp: &amp;quot;\n&amp;quot; steht in einem String für Zeilenumbruch.&lt;br /&gt;
** Es soll also aus dem GameField-Array wieder ein String generiert werden.&lt;br /&gt;
** Die toString-Methode von GameField soll die toString Methode von GameTile verwenden, um diese Ausgabe zu erzeugen.&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer Programm mit verschiedenen Levels&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class World Teil 1 ==&lt;br /&gt;
	&lt;br /&gt;
* World ist die Klasse, die alles verbinden wird, Spieler, Items, Spielfeld etc.&lt;br /&gt;
	&lt;br /&gt;
* Zunächst einmal gibt es nur das GameField, was wir einbinden können (später der Spieler).&lt;br /&gt;
	&lt;br /&gt;
* Die Main Klasse erzeugt ab jetzt nur noch eine Instanz von World nicht mehr von GameField. Denn World selbst soll sich das GameField erzeugen (im Konstruktor).&lt;br /&gt;
&lt;br /&gt;
* Bei Java funktioniert es bei grafischen Anwendungen etwa so: Man hat ein Objekt, das eine Leinwand repräsentiert (Canvas), man darf auf diesem Objekt Sachen malen. In einem Spiel wird das Objekt in jedem Frame leer gemacht, danach werden alle beteiligten grafischen Objekte (Spieler, Spielfeld, Gegner) nacheinander auf diese Leinwand gemalt. Letzendlich wird die Leinwand auf dem Bildschirm ausgegeben. Das hat den Vorteil, dass jede Klasse die darauf Zugriff bekommt, irgendetwas malen kann ohne zu wissen, was bereits darauf ist oder noch darauf kommt. (Jedes Objekt kümmert sich selbst um seine grafische Entsprechung.)&lt;br /&gt;
Das werden wir hier auch machen, allerdings mit Strings, da uns die Grundlagen für Grafisches noch fehlen.&lt;br /&gt;
	&lt;br /&gt;
* Definiert eine solche Canvas Variable, die für die grafische Repräsentierung des Spielfelds stehen wird.&lt;br /&gt;
**  Das soll ein 2D-Array aus Strings der Länge 1 sein. Ein String pro Feld, dieses enthält dann &amp;quot;#&amp;quot; oder &amp;quot; &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Wir brauchen nun eine draw-Methode, die eine solche Leinwand (String[][]) aus World übergeben bekommt und sich selbst darauf malt. Diese Methode funktioniert nun ähnlich wie unsere toString-Methode, sie gibt nur nichts zurück, sondern modifiziert direkt unser Leinwand-Array und malt dort Zeichen für Zeichen die Felder rein. (Arrays sind keine primitiven Datentypen, daher wird hier nicht mit einer Kopie gearbeitet)&lt;br /&gt;
  &lt;br /&gt;
 public void draw( String[][] canvas ){ }&lt;br /&gt;
  &lt;br /&gt;
* Was passiert eigentlich, wenn das GameField größer ist als unser String[][]? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nun kommt unsere wichtigste Methode &amp;lt;code&amp;gt;public void draw()&amp;lt;/code&amp;gt;. Draw soll alle Inhalte (bisher nur GameField)  auf unser Canvas-Objekt malen, indem es die draw-Methode von GameField aufruft und das Canvas-Array übergibt. Der Code beschränkt sich hier also auf eine Zeile. &lt;br /&gt;
** Später fügen wir hier mehr ein. &lt;br /&gt;
	 		  	  	&lt;br /&gt;
* Implementiert auch eine toString-Methode, diese sollte das aktuelle Canvas-Array in der richtigen Form für die Konsolenausgabe liefern.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; TESTET nun euere Grafik Ausgabe und euer toString().&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain enthält als einzige eine Instanz der Klasse World und kann somit das Spielfeld zeichnen. 	&lt;br /&gt;
  &lt;br /&gt;
* Sofern ihr beim Testen versucht habt, das Spielfeld mehrmals auf die Konsole auszugeben, seht ihr, dass das alte Spielfeld  noch immer sichtbar ist über dem neuen. Das sieht irgendwie blöd aus.&lt;br /&gt;
	  &lt;br /&gt;
* Zählt nach, wieviele Zeilen euere Konsole hat. &lt;br /&gt;
	&lt;br /&gt;
* Bevor man das Level ausgibt, kann man soviele leere Zeilen ausgeben lassen, dass das alte Level nicht mehr sichtbar ist. &amp;lt;code&amp;gt;System.out.println(&amp;quot;&amp;quot;);&amp;lt;/code&amp;gt;   gibt eine leere Zeile aus. &lt;br /&gt;
	  &lt;br /&gt;
* &#039;&#039;&#039;TESTEN ob das klappt und gut aussieht&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class Player Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Der Spieler wird die Möglichkeit haben, auf dem Spielfeld rumzulaufen und je nachdem, wie weit ihr kommt, noch viel mehr.&lt;br /&gt;
	  		  &lt;br /&gt;
* Der Spieler besitzt eine Position (Variable vom Typ Position), wie immer private mit Getter/Setter&lt;br /&gt;
	&lt;br /&gt;
* Der Spieler wird durch ein &amp;quot;*&amp;quot;  auf dem Spielfeld repräsentiert. Implementiert eine draw-Methode, die genau so wie die draw-Methode aus GameField den Spieler auf unsere Leinwand malt, an die Position die in der position-Variable gepseichert ist.&lt;br /&gt;
	  &lt;br /&gt;
* Player soll auch vier Methoden haben &lt;br /&gt;
** public void moveLeft() &lt;br /&gt;
** public void moveRight()&lt;br /&gt;
** public void moveUp()&lt;br /&gt;
** public void moveDown()&lt;br /&gt;
* Welche einfach nur die X- oder Y-Position um 1 erhöhen oder dekrementieren.&lt;br /&gt;
&lt;br /&gt;
	  &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 3 ==&lt;br /&gt;
&lt;br /&gt;
* Im Konstruktor soll nun auch eine Spielerinstanz erzeugt werden und zunächst an einer bel. Position gesetzt werden.&lt;br /&gt;
	  &lt;br /&gt;
* Erweitert die draw-Methode so, dass nun auch der Spieler angezeigt wird. &lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;TESTET ob das funktioniert. Was passiert eigentlich, wenn man den Spieler an der Position  -1 | -1 setzt ? &#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 4 ==&lt;br /&gt;
&lt;br /&gt;
* Implementiert eine Methode &amp;lt;code&amp;gt;public boolean onKeyPressed( String key ){ ... }&amp;lt;/code&amp;gt;. Sie wird dann aufgerufen werden, wenn eine Taste gedrückt wurde und soll &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurückgeben, wenn der Spieler sich bewegt hat, ansonsten &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. 	  &lt;br /&gt;
	  &lt;br /&gt;
* Zunächst müssen wir in onKeyPressed prüfen, ob key einer der Strings &amp;quot;a&amp;quot; (links) , &amp;quot;s&amp;quot;(unten) , &amp;quot;d&amp;quot;(rechts) , &amp;quot;w&amp;quot;(oben) ist (equals benutzen!). Falls ja, wurde schonmal sicherlich eine gültige Taste gedrückt. Falls nein, können wir false zurückliefern.&lt;br /&gt;
	&lt;br /&gt;
* Wir müssen als nächstes prüfen, ob der Spieler durch die Bewegung nicht in eine Mauer reinläuft, dazu müssen wir die Spielerposition vergleichen und schauen, in welchem Tile er stehen würde, wenn wir rechts/links/hoch/runter liefen. Sofern dieses Tile leer ist, dürfen wir in diese Richtung laufen.&lt;br /&gt;
	  &lt;br /&gt;
* Nun wo wir das alles geprüft haben, bewegen wir den Spieler mit einer der vier Bewegungsfunktionen und geben true zurück.&lt;br /&gt;
		  &lt;br /&gt;
* &#039;&#039;&#039;TESTET unbedingt manuell diese Methode, sie muss korrekt funktionieren! &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Nun kommt alles zusammen.&lt;br /&gt;
	&lt;br /&gt;
* Fuer die Eingabe von der Konsole bwnutzt wieder die Terminal Klasse.&lt;br /&gt;
&lt;br /&gt;
* Es muss geprueft werden ob es sich um ein gueltiges Zeichen handelt und ob es eines der Zeichen a,s,w,d ist.&lt;br /&gt;
&lt;br /&gt;
* Das eingegebene Zeichen soll dann an die World Klasse uebergeben werden und diese soll den Spieler bewegen, falls dies moeglich ist!&lt;br /&gt;
&lt;br /&gt;
		     	 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
* Nun kann der Spieler im Level rumlaufen und es gibt eine Art Interaktion. Das ist das Basisgerüst für ein Spiel, ihr könnt nun weitere Sachen einfügen wie z.B. Items, die man einsammeln kann. Wie könnte man das machen? Was hat Liv Tyler in diesem Spiel für eine Aufgabe? Und [http://www.chilloutzone.de/files/05012104.html wo ist das Stroh?]&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9605</id>
		<title>Javakurs/Übungsaufgaben/Doom</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Doom&amp;diff=9605"/>
		<updated>2007-04-11T13:40:11Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: /* class GameField Teil 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ASCII-DOOM&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
In Ascii-Doom geht es darum, ein kleines Spiel zu implementieren, mit ASCII Grafiken. Es wird&lt;br /&gt;
möglich sein, mit einer Spielfigur auf dem Spielfeld zu laufen, später könnt ihr auch&lt;br /&gt;
Items, Waffen und [http://venus.provocateuse.com/images/photos/liv_tyler_01.jpg Liv Tyler] einbauen! Wir werden Klasse für Klasse das Spiel implementieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain ist die Klasse, die die main Methode enthalten wird und somit ausführbar ist.&lt;br /&gt;
	&lt;br /&gt;
* Sie wird die Schnittstelle zur Außenwelt sein und die Ausgabe auf die Konsole tätigen.&lt;br /&gt;
&lt;br /&gt;
* Erstellt zunächst nur diese Klsse. Sobald ihr Klassen aus den späteren Aufgaben implementiert habt, könnt ihr in der main-Methode ihre Funktionalität testen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class Position Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Position repräsentiert eine Position auf einem 2D-Spielfeld.&lt;br /&gt;
&lt;br /&gt;
* Enthält private Attribute x und y, gekapselt mit gettern/settern.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine equals-Methode, die 2 Positions vergleicht.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer equals!&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameTile Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* GameTile repräsentiert ein Tile (ein Feld) im späteren Spiel.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable, die für den Typ des Feldes steht (am besten ein int).&lt;br /&gt;
** 1 entspricht wand&lt;br /&gt;
** 2 entspricht leer &lt;br /&gt;
			&lt;br /&gt;
* Also auch hier braucht ihr Getter und Setter.&lt;br /&gt;
&lt;br /&gt;
* Enthält außerdem eine private Variable vom Typ Position, welche die Position des GameTiles auf dem Feld speichert.&lt;br /&gt;
	&lt;br /&gt;
* Implementiert eine toString-Methode, die jedem GameTile einen String mit Länge 1 zuordnet.&lt;br /&gt;
** wand = &amp;quot;x&amp;quot;&lt;br /&gt;
** leer = &amp;quot; &amp;quot;&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer toString.&#039;&#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GameField ist eine zentrale Klasse in diesem Spiel, sie repräsentiert das Spielfeld als Ganzes und besteht aus GameTiles.&lt;br /&gt;
	&lt;br /&gt;
* Enthält eine private Variable für das Level (2D-Array aus GameTiles). &lt;br /&gt;
	&lt;br /&gt;
* Über den Konstruktor wird ein String dieser Form übergeben(ebenso seine Breite und Höhe): 		&lt;br /&gt;
        String s = &amp;quot;########&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;###    #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;#      #&amp;quot; +&lt;br /&gt;
 		  &amp;quot;########&amp;quot;;&lt;br /&gt;
** Es soll mit einer Schleife der String Zeichen für Zeichen ausgelesen werden und aus jedem Zeichen ein neues GameTile (fest oder leer) erzeugt werden. Diese GameTiles werden dann in dem Array gespeichert!&lt;br /&gt;
** Wie man Strings Zeichen für Zeichen ausliest, findet ihr in der API (java.lang.String).&lt;br /&gt;
** Implementiert ein toString, dieses soll folgenden String liefern: 	&lt;br /&gt;
 		  12345678&lt;br /&gt;
 		1 ######## &lt;br /&gt;
 		2 #      #&lt;br /&gt;
 		3 #      #&lt;br /&gt;
 		4 ###    #&lt;br /&gt;
 		5 #      #&lt;br /&gt;
  		6 ########&lt;br /&gt;
** Tipp: &amp;quot;\n&amp;quot; steht in einem String für Zeilenumbruch.&lt;br /&gt;
** Es soll also aus dem GameField-Array wieder ein String generiert werden.&lt;br /&gt;
** Die toString-Methode von GameField soll die toString Methode von GameTile verwenden, um diese Ausgabe zu erzeugen.&lt;br /&gt;
		&lt;br /&gt;
* &#039;&#039;&#039;TESTET euer Programm mit verschiedenen Levels&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== class World Teil 1 ==&lt;br /&gt;
	&lt;br /&gt;
* World ist die Klasse, die alles verbinden wird, Spieler, Items, Spielfeld etc.&lt;br /&gt;
	&lt;br /&gt;
* Zunächst einmal gibt es nur das GameField, was wir einbinden können (später der Spieler).&lt;br /&gt;
	&lt;br /&gt;
* Die Main Klasse erzeugt ab jetzt nur noch eine Instanz von World nicht mehr von GameField. Denn World selbst soll sich das GameField erzeugen (im Konstruktor).&lt;br /&gt;
&lt;br /&gt;
* Bei Java funktioniert es bei grafischen Anwendungen etwa so: Man hat ein Objekt, das eine Leinwand repräsentiert (Canvas), man darf auf diesem Objekt Sachen malen. In einem Spiel wird das Objekt in jedem Frame leer gemacht, danach werden alle beteiligten grafischen Objekte (Spieler, Spielfeld, Gegner) nacheinander auf diese Leinwand gemalt. Letzendlich wird die Leinwand auf dem Bildschirm ausgegeben. Das hat den Vorteil, dass jede Klasse die darauf Zugriff bekommt, irgendetwas malen kann ohne zu wissen, was bereits darauf ist oder noch darauf kommt. (Jedes Objekt kümmert sich selbst um seine grafische Entsprechung.)&lt;br /&gt;
Das werden wir hier auch machen, allerdings mit Strings, da uns die Grundlagen für Grafisches noch fehlen.&lt;br /&gt;
	&lt;br /&gt;
* Definiert eine solche Canvas Variable, die für die grafische Repräsentierung des Spielfelds stehen wird.&lt;br /&gt;
**  Das soll ein 2D-Array aus Strings der Länge 1 sein. Ein String pro Feld, dieses enthält dann &amp;quot;#&amp;quot; oder &amp;quot; &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameField Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Wir brauchen nun eine draw-Methode, die eine solche Leinwand (String[][]) aus World übergeben bekommt und sich selbst darauf malt. Diese Methode funktioniert nun ähnlich wie unsere toString-Methode, sie gibt nur nichts zurück, sondern modifiziert direkt unser Leinwand-Array und malt dort Zeichen für Zeichen die Felder rein. (Arrays sind keine primitiven Datentypen, daher wird hier nicht mit einer Kopie gearbeitet)&lt;br /&gt;
  &lt;br /&gt;
 public void draw( String[][] canvas ){ }&lt;br /&gt;
  &lt;br /&gt;
* Was passiert eigentlich, wenn das GameField größer ist als unser String[][]? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Nun kommt unsere wichtigste Methode &amp;lt;code&amp;gt;public void draw()&amp;lt;/code&amp;gt;. Draw soll alle Inhalte (bisher nur GameField)  auf unser Canvas-Objekt malen, indem es die draw-Methode von GameField aufruft und das Canvas-Array übergibt. Der Code beschränkt sich hier also auf eine Zeile. &lt;br /&gt;
** Später fügen wir hier mehr ein. &lt;br /&gt;
	 		  	  	&lt;br /&gt;
* Implementiert auch eine toString-Methode, diese sollte das aktuelle Canvas-Array in der richtigen Form für die Konsolenausgabe liefern.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; TESTET nun euere Grafik Ausgabe und euer toString().&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Die Klasse GameMain enthält als einzige eine Instanz der Klasse World und kann somit das Spielfeld zeichnen. 	&lt;br /&gt;
  &lt;br /&gt;
* Sofern ihr beim Testen versucht habt, das Spielfeld mehrmals auf die Konsole auszugeben, seht ihr, dass das alte Spielfeld  noch immer sichtbar ist über dem neuen. Das sieht irgendwie blöd aus.&lt;br /&gt;
	  &lt;br /&gt;
* Zählt nach, wieviele Zeilen euere Konsole hat. &lt;br /&gt;
	&lt;br /&gt;
* Bevor man das Level ausgibt, kann man soviele leere Zeilen ausgeben lassen, dass das alte Level nicht mehr sichtbar ist. &amp;lt;code&amp;gt;System.out.println(&amp;quot;&amp;quot;);&amp;lt;/code&amp;gt;   gibt eine leere Zeile aus. &lt;br /&gt;
	  &lt;br /&gt;
* &#039;&#039;&#039;TESTEN ob das klappt und gut aussieht&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class Player Teil 1 ==&lt;br /&gt;
&lt;br /&gt;
* Der Spieler wird die Möglichkeit haben, auf dem Spielfeld rumzulaufen und je nachdem, wie weit ihr kommt, noch viel mehr.&lt;br /&gt;
	  		  &lt;br /&gt;
* Der Spieler besitzt eine Position (Variable vom Typ Position), wie immer private mit Getter/Setter&lt;br /&gt;
	&lt;br /&gt;
* Der Spieler wird durch ein &amp;quot;*&amp;quot;  auf dem Spielfeld repräsentiert. Implementiert eine draw-Methode, die genau so wie die draw-Methode aus GameField den Spieler auf unsere Leinwand malt, an die Position die in der position-Variable gepseichert ist.&lt;br /&gt;
	  &lt;br /&gt;
* Player soll auch vier Methoden haben &lt;br /&gt;
** public void moveLeft() &lt;br /&gt;
** public void moveRight()&lt;br /&gt;
** public void moveUp()&lt;br /&gt;
** public void moveDown()&lt;br /&gt;
* Welche einfach nur die X- oder Y-Position um 1 erhöhen oder dekrementieren.&lt;br /&gt;
&lt;br /&gt;
	  &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 3 ==&lt;br /&gt;
&lt;br /&gt;
* Im Konstruktor soll nun auch eine Spielerinstanz erzeugt werden und zunächst an einer bel. Position gesetzt werden.&lt;br /&gt;
	  &lt;br /&gt;
* Erweitert die draw-Methode so, dass nun auch der Spieler angezeigt wird. &lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;TESTET ob das funktioniert. Was passiert eigentlich, wenn man den Spieler an der Position  -1 | -1 setzt ? &#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class World Teil 4 ==&lt;br /&gt;
&lt;br /&gt;
* Implementiert eine Methode &amp;lt;code&amp;gt;public boolean onKeyPressed( String key ){ ... }&amp;lt;/code&amp;gt;. Sie wird dann aufgerufen werden, wenn eine Taste gedrückt wurde und soll &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; zurückgeben, wenn der Spieler sich bewegt hat, ansonsten &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. 	  &lt;br /&gt;
	  &lt;br /&gt;
* Zunächst müssen wir in onKeyPressed prüfen, ob key einer der Strings &amp;quot;a&amp;quot; (links) , &amp;quot;s&amp;quot;(unten) , &amp;quot;d&amp;quot;(rechts) , &amp;quot;w&amp;quot;(oben) ist (equals benutzen!). Falls ja, wurde schonmal sicherlich eine gültige Taste gedrückt. Falls nein, können wir false zurückliefern.&lt;br /&gt;
	&lt;br /&gt;
* Wir müssen als nächstes prüfen, ob der Spieler durch die Bewegung nicht in eine Mauer reinläuft, dazu müssen wir die Spielerposition vergleichen und schauen, in welchem Tile er stehen würde, wenn wir rechts/links/hoch/runter liefen. Sofern dieses Tile leer ist, dürfen wir in diese Richtung laufen.&lt;br /&gt;
	  &lt;br /&gt;
* Nun wo wir das alles geprüft haben, bewegen wir den Spieler mit einer der vier Bewegungsfunktionen und geben true zurück.&lt;br /&gt;
		  &lt;br /&gt;
* &#039;&#039;&#039;TESTET unbedingt manuell diese Methode, sie muss korrekt funktionieren! &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== class GameMain Teil 2 ==&lt;br /&gt;
&lt;br /&gt;
* Nun kommt alles zusammen.&lt;br /&gt;
	&lt;br /&gt;
* Fügt am Ende eurer main Methode folgenden Code für das Lesen von der Tastatur: &lt;br /&gt;
 	while(true) {&lt;br /&gt;
 		InputStreamReader reader = new InputStreamReader(System.in);&lt;br /&gt;
 		BufferedReader lineReader =	new BufferedReader(reader);&lt;br /&gt;
 		System.out.print(&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
 		&lt;br /&gt;
 		char[] line = new char[1];		&lt;br /&gt;
 		try {						&lt;br /&gt;
 			line[0] = (char)lineReader.read();			&lt;br /&gt;
 		} catch (IOException e) {&lt;br /&gt;
 			e.printStackTrace();&lt;br /&gt;
 		}&lt;br /&gt;
 		String s = new String( line );&lt;br /&gt;
 		if (s.equals(&amp;quot;x&amp;quot;) ){&lt;br /&gt;
 			return;&lt;br /&gt;
 		} else if (s.equals(&amp;quot;a&amp;quot;) || s.equals(&amp;quot;s&amp;quot;) &lt;br /&gt;
 			 ||s.equals(&amp;quot;d&amp;quot;) || s.equals(&amp;quot;w&amp;quot;) ){&lt;br /&gt;
  			 /*TODO: MODIFIZIERT DEN NAMEN DER WORLD INSTANZ HIER! */&lt;br /&gt;
 			 if (world.onKeyPressed(s)){&lt;br /&gt;
 			 	/*TODO: HIER MUSS NEUGEMALT WERDEN, DER SPIELER HAT SICH BEWEGT*/&lt;br /&gt;
 			 }&lt;br /&gt;
 			 &lt;br /&gt;
 			&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
	&lt;br /&gt;
* Ihr müsst &amp;quot;world&amp;quot; durch den Namen, den ihr euerer World Instanz gegeben habt ersetzen.&lt;br /&gt;
&lt;br /&gt;
* In die if-Anweisung am Ende fügt ihr euren Code für das neuzeichnen des Levels. Also vielleicht so etwas wie:&lt;br /&gt;
 System.out.println( world )&lt;br /&gt;
		     	 &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
* Nun kann der Spieler im Level rumlaufen und es gibt eine Art Interaktion. Das ist das Basisgerüst für ein Spiel, ihr könnt nun weitere Sachen einfügen wie z.B. Items, die man einsammeln kann. Wie könnte man das machen? Was hat Liv Tyler in diesem Spiel für eine Aufgabe? Und [http://www.chilloutzone.de/files/05012104.html wo ist das Stroh?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9199</id>
		<title>Javakurs/Übungsaufgaben/Brainfuck</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Javakurs/%C3%9Cbungsaufgaben/Brainfuck&amp;diff=9199"/>
		<updated>2007-04-11T11:48:03Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: /* Kommentare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Aufgabenstellung===&lt;br /&gt;
&lt;br /&gt;
In dieser Aufgabe bauen wir uns eine simple [[wikipedia:Turingmaschine|Turingmaschine]]. Die Turingmaschine besitzt dabei nur ein Arbeitsband (workingTape) der Länge 10. Es existiert ein Lese/Schreibe-Kopf (head), der über das workingTape gleiten kann, dort Werte ändern und Werte ausgeben soll. Bewegt sich der Kopf über ein Ende des Arbeitsbandes hinaus, so taucht er auf der anderen Seite wieder auf (wenn also z.B der head auf das 11. Feld zeigt, dann soll er wieder auf das 1. zeigen).&lt;br /&gt;
&lt;br /&gt;
Die Maschine selbst wird durch einen einfachen Programmcode gesteuert, der aus 5 Befehlen besteht:&lt;br /&gt;
* &#039;&#039;&#039;&amp;gt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach rechts&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;&#039;&#039;&#039; Dieser Befehl bewegt den head ein Feld nach links&lt;br /&gt;
* &#039;&#039;&#039;+&#039;&#039;&#039; Dieser Befehl erhöht den Wert des aktuellen Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;-&#039;&#039;&#039; Dieser Befehl verringert den Wert aktuelles Feldes um 1&lt;br /&gt;
* &#039;&#039;&#039;#&#039;&#039;&#039; Dieser Befehl gibt den aktuellen Wert auf der Konsole aus&lt;br /&gt;
&lt;br /&gt;
Der Programmcode der die Turingmaschine steuert, soll in einem Array namens &#039;&#039;sourceCode&#039;&#039; stehen, der Code soll Schritt für Schritt durchgegangen und ausgeführt werden. Auf dem Arbeitsband werden Werte vom Typ &#039;&#039;&#039;char&#039;&#039;&#039; gespeichert, die anfangs alle den Wert &#039;a&#039; haben. Der head zeigt am Anfang auf das erste Feld auf dem workingTape.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 1:&#039;&#039;&#039; char-Werte werden intern als Zahlenwerte gespeichert, deshalb könnt ihr ohne Probleme sowas wie &#039;&#039;&#039;char example = &#039;a&#039;+1;&#039;&#039;&#039; schreiben. Wenn ihr wissen wollt, welche Zeichen durch welche Zahlen repräsentiert werden, dann schaut in die [[wikipedia:ASCII-Tabelle|ASCII-Tabelle]].&lt;br /&gt;
&lt;br /&gt;
Jetzt solltet ihr auch in der Lage sein, mit eurer eigenen Turingmaschine ein &amp;quot;Hello World&amp;quot;-Programm zu schreiben. Wenn ihr eure Turingmaschine eigentständig erweitern wollt, dann schaut lest mehr über  die Sprache [[wikipedia:Brainfuck|Brainfuck]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis 2:&#039;&#039;&#039; Zum Testen verwendet einfach diese Initialisierung der Variable Source-Code. Wenn ihr alles richtig gemacht habt, dann sollten die Buchstaben a, b  und c ausgegeben werden. Die Schreibweise mit den geschweiften Klammern und den Kommawerten legt automatisch ein Array an und füllt es mit den beschriebenen Werten (Deklaration &amp;amp; Initialisierung in einem Schritt):&lt;br /&gt;
 char[] sourceCode = {&#039;#&#039;, &#039;+&#039;, &#039;#&#039;, &#039;+&#039;, &#039;#&#039;};&lt;br /&gt;
&lt;br /&gt;
== Kommentare ==&lt;br /&gt;
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf &amp;quot;bearbeiten&amp;quot; und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit &amp;quot;Vorschau zeigen&amp;quot; kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.&lt;br /&gt;
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)&lt;br /&gt;
&lt;br /&gt;
==== Robert ====&lt;br /&gt;
Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== FehlerKategorie ====&lt;br /&gt;
Um den Char um einen Wert zu erhöhen müsst ihr eure Variable zurück casten.&lt;br /&gt;
 char Example = (char)(&#039;a&#039;-1);&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:FelixBrossmann&amp;diff=1465</id>
		<title>Benutzer:FelixBrossmann</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Benutzer:FelixBrossmann&amp;diff=1465"/>
		<updated>2005-06-20T11:53:50Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://home.t-online.de/home/f.brossmann/fotos/felix.jpg&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
&lt;br /&gt;
mein Name ist Felix Brossmann (logischerweise, dies ist ja die Benutzerseite von &amp;quot;Felix Brossmann&amp;quot;). Ich befinde mich mittlerweile im 6. Semester (SS 05), bin seit WS 04/05 als Studentische Hilfskraft bei TFS angestellt und werde dieses Semester &amp;quot;TheGI2&amp;quot; betreuen. Im Hauptstudium plane ich eine Schwerpunktsetzung KI (insbesondere AOT) sowie THI.&lt;br /&gt;
Neben der Uni beschäftige ich mich natürlich gerne mit meine Computer (+ PS2 ;) ), ich spiele gerne (Sport &amp;amp; Wi-Sims) und programmiere auch ein wenig: Spieleprogrammierung unter Windows mit C++ - also die absoluten DON&#039;Ts für jeden ernsthaften Informatiker ;) Als Ausgleich mache ich auch gerne Sport, hier nutze ich das vielfältige Uni-Sportprogramm gut aus, für dieses Semester habe ich gleich zwei Kurse Inline-Hockey vorgenommen. Passiv-Sportler bin ich auch, gehe alle zwei Wochen ins Olympiastadion zur Hertha und ein- oder zweimal im Jahr zu ALBA, den Eisbaeren, Thunder und was es osnst noch alles gibt.&lt;br /&gt;
Den Rest meiner Freizeit nimmt dann noch meine Verlobte in Anspruch... und die BVG nicht zu vergessen :(&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In diesem Semester belege ich folgende Veranstaltungen: [[Verteilte Systeme]], [[Robocup]], [[Kategorientheorie]] und [[BRW 2]].&lt;br /&gt;
Im Hauptstudium habe ich bis jetzt gehoert:[[Agentenorientierte Techniken]], [[Grundlagen der Künstlichen Intelligenz]], [[Softwaretechnik]] und [[Formale Spezifikation von Systemen]]. Im Nebenfach(Grundtsudium) habe ich belegt: [[A-BWL 1]], [[A-BWL 2]], [[A-VWL 1]] und [[BRW 1]]. Meine Grundstudiumspraktika: [[UNIX-Praktikum (SS)]], [[Cpp - Praktikum]].&lt;br /&gt;
&lt;br /&gt;
Ihr erreicht mich unter febro@gmx.net&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Kickerturnier_2005&amp;diff=4044</id>
		<title>Diskussion:Kickerturnier 2005</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Kickerturnier_2005&amp;diff=4044"/>
		<updated>2005-06-20T11:53:06Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir spielen in der Freitagsrunde eigentlich immer noch mit folgender Regel:&lt;br /&gt;
&lt;br /&gt;
* Ein Tor gilt nur, wenn der Ball auch wirklich im Tor bleibt - springt er wieder aufs Spielfeld zurück, zählt das Tor nicht.&lt;br /&gt;
:Können wir ja auch beim Turnier machen, ich hatte nur erstmal die Regeln 1:1 von der Wikipedia-Seite übernommen. Eine weitere Regel, die ich zur Diskussion stellen würde, ist die Anzahl der benötigten Tore: Sollten es bis Donnerstag weiter so wenige Manschafften bleiben, könnten wir doch eigentlich auch bis 10 spielen. --[[Benutzer:Thomas|Thomas]] 12:26, 25. Jan 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hat einen riesen Spaß gemacht :) Von mir aus kann man gerne das nächste Mal 5 pro Person und nicht pro Team nehmen...  --[[Benutzer:FelixBrossmann|FelixB]] 17:06, 28. Jan 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cooles Video, thx! :) --[[Benutzer:FelixBrossmann|FelixB]] 13:54, 20. Jun 2005 (CET)&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Diskrete_und_strukturelle_MafI_(StuPO90)&amp;diff=4952</id>
		<title>Diskrete und strukturelle MafI (StuPO90)</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Diskrete_und_strukturelle_MafI_(StuPO90)&amp;diff=4952"/>
		<updated>2005-05-04T13:56:09Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;qaEWR&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Eclipsekurs_2005&amp;diff=4736</id>
		<title>Eclipsekurs 2005</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Eclipsekurs_2005&amp;diff=4736"/>
		<updated>2005-04-21T16:01:50Z</updated>

		<summary type="html">&lt;p&gt;130.149.23.252: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Kurzbeschreibung ===&lt;br /&gt;
&lt;br /&gt;
[[IBM Eclipse | Eclipse]] ist eine [[Java IDE Einleitung| IDE]], mit der sich insbesondere Java-Programme schneller und bequemer erstellen lassen. Allerdings ist Eclipse sehr komplex und insbesondere der Start könnte vielleicht dem einen oder anderen etwas schwer fallen.&lt;br /&gt;
&lt;br /&gt;
Wir veranstalten daher wie jedes Jahr einen 2-stündigen Einführungskurs, in dem die basics gezeigt werden. Es geht also um Starthilfe, nicht um die neuesten Eclipse-Tricks oder die besten Plugins. Zielgruppe sind insbesondere Hörer von [[Informatik 2]], aber auch alle anderen Interessenten sind willkommen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Zeit und Ort ===&lt;br /&gt;
Datum: &#039;&#039;&#039;Donnerstag, 21. April 2005&#039;&#039;&#039; &amp;lt;br/&amp;gt;&lt;br /&gt;
Zeit: ab 16:15 &amp;lt;br/&amp;gt;&lt;br /&gt;
Dauer: 90 Minuten (einmalig) &amp;lt;br/&amp;gt;&lt;br /&gt;
SWS: keine (studentische Veranstaltung) &amp;lt;br/&amp;gt;&lt;br /&gt;
Ort: FR 5516&lt;br /&gt;
&lt;br /&gt;
=== Themen ===&lt;br /&gt;
* Projekte anlegen&lt;br /&gt;
* Java-Programme schreiben &amp;amp; ausführen&lt;br /&gt;
* Debugging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anmerkungen ===&lt;br /&gt;
* 3plus4software.de ist aus irgendwelchen Gruenden nicht mehr aufrufbar. Immerhin gibt es eine englische Kopie der Tutorials unter&lt;br /&gt;
http://www.eg.bucknell.edu/~cs479/Fall2004SoftwareDesign/eclipse-tutorial/&lt;br /&gt;
&lt;br /&gt;
=== Anmeldung ===&lt;br /&gt;
Habt bitte Verständnis, dass schon auf Grund der Raumsituation eine Teilnehmerbeschränkung (35 Personen) einführen müssen. Wir setzen aber wirklich viel daran, dass auch jeder teilnehmen kann, im letzten Jahr haben wir daher zwei Kurse gehalten. Bisher konnte immer jeder Interessent am Kurs teilnehmen!&lt;br /&gt;
&lt;br /&gt;
Um euch für den Kurs anzumelden, tragt euch bitte unten in der Liste ein. Für Leute, die noch nie ein Wiki benutzt haben: Auf &#039;bearbeiten&#039; klicken (neben der Anmelden-Überschrift), dann im Textfeld die gewünschte Änderung durchführen und anschließend &#039;Artikel speichern&#039;.&lt;br /&gt;
&lt;br /&gt;
Teilnehmerliste:&lt;br /&gt;
# Florian Zeidler          (fzeidler@cs.tu-berlin.de)&lt;br /&gt;
# Thilo Schmidt            (dude@cs.tu-berlin.de)&lt;br /&gt;
# Alexander Oppermann      (opix@cs.tu-berlin.de)&lt;br /&gt;
# Nicolas Poczka           (npoczka@cs.tu-berlin.de)&lt;br /&gt;
# Daniel Giancaterino      (italia@cs.tu-berlin.de)&lt;br /&gt;
# Ani Hayka                (almhay@cs.tu-berlin.de)&lt;br /&gt;
# Zhuo-Fei Hui             (zfhui@web.de)&lt;br /&gt;
# Simon Kwoczek            (simonk@cs.tu-berlin.de)&lt;br /&gt;
# E. L. M.                 (easy@cs.tu-berlin.de)&lt;br /&gt;
# Stephan Spiegel          (spiegels@cs.tu-berlin.de)&lt;br /&gt;
# Nina Penova              (nina@cs.tu-berlin.de)&lt;br /&gt;
# Sven Pritzlaff           (snakebln@cs.tu-berlin.de)&lt;br /&gt;
# Jens Meier               (jmeier@cs.tu-berlin.de)&lt;br /&gt;
# Moslem Azizi             (azizi@cs.tu-berlin.de)&lt;br /&gt;
# Seyed Sadra Amirkhalili  (sidnorme@cs.tu-berlin.de)&lt;br /&gt;
# Mohammad Mohebbi         (sidnor_me@yahoo.com)&lt;br /&gt;
# Meyssam Alihosseini      (meyssam20001@yahoo.com)&lt;br /&gt;
# Pawel Wojciechowski      (giugiaro@cs.tu-berlin.de)&lt;br /&gt;
# Andreas Gobbin           (andigob@cs.tu-berlin.de&lt;br /&gt;
# Anton Gräber             (sunlicht@cs.tu-berlin.de)&lt;br /&gt;
# Melanie Ozanik           (qertyxy@cs.tu-berlin.de)   --ich kann heute doch nicht :o(&lt;br /&gt;
# Ulrike Koelle 	   (koelleu@cs.tu-berlin.de)&lt;br /&gt;
# Goßmann Matthias         (matthias@cs.tu-berlin.de)&lt;br /&gt;
# Konstantin Domoratskyy   (kostyan@cs.tu-berlin.de)&lt;br /&gt;
# Christian Retzlaff       (retzlaff@cs.tu-berlin.de)&lt;br /&gt;
# Christoph Lorenz         (yasokuhl@cs.tu-berlin.de)&lt;br /&gt;
# Remigiusz Zmuda          (r_zmuda@yahoo.de)&lt;br /&gt;
# Deniz Ceren Eser         (amphitridenis@yahoo.de)&lt;br /&gt;
# Andreas Stöckle          (andreasstoeckle@web.de)&lt;br /&gt;
# Sebastian Ahrndt         (baschi@cs.tu-berlin.de)&lt;br /&gt;
# Fabian Löser             (Feiershorty@gmx.de)&lt;br /&gt;
# Yibo Zhao                (boge1981@hotmail.com)&lt;br /&gt;
# Eik Tauber               (eikohol@cs.tu-berlin.de)&lt;br /&gt;
# Sven Wasmer              (svenfqab@cs.tu-berlin.de)&lt;br /&gt;
# Susi Kellberger          (tarasue@web.de)&lt;br /&gt;
Bitte nicht mehr anmelden, der Kurs ist voll. Bitte in den zweiten Kurs (s. unten) eintragen.&lt;br /&gt;
&lt;br /&gt;
=== weitere Kurse ===&lt;br /&gt;
&lt;br /&gt;
Glücklicherweise sind wir inzwischen fünf Vortragende, d.h. heißt, wir können bequem zwei Kurse veranstalten. Wenn ihr also diesmal nicht reingekommen seid, könnt ihr z.B. am nächsten Kurs teilnehmen. Der zweite Kurs wird vermutlich nächste Woche stattfinden, wieder zu einer ähnlichen Zeit (d.h. donnerstags, ev. freitags).&lt;br /&gt;
&lt;br /&gt;
Voranmeldungen hier, wir melden uns bei euch:&lt;br /&gt;
&lt;br /&gt;
MUSTER: &amp;quot;# Name (cs-userid)&amp;quot; ohne die &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Jens Marohn (pica) Bitte um 14:00 Uhr Danke&lt;br /&gt;
# Dominique Charpentier (djcinc) 14.00 Uhr klingt gut!&lt;br /&gt;
# Marcus Daute (marcusd) Donnerstag Lieber 16 Uhr!&lt;br /&gt;
# Thomas Krauß (tkra) Donnerstag&lt;/div&gt;</summary>
		<author><name>130.149.23.252</name></author>
	</entry>
</feed>