# Idee für Java Projekt



## NthDegree (28. Jan 2010)

Hallo zusammen!

Bin in einer Ausbildung als Entwickler und wir haben heute den Auftrag erhalten, uns ein Projekt zu überlegen, welches wir im nächsten halben Jahr (40 Lektionen) realisieren werden.
Habe 1.5 Jahre "Erfahrung", sprich ich kenne die Syntax, kann mit Arrays umgehen und wurde ein halbes Jahr in die Kunst der objektorientierten Programmierung eingeführt. Netzwerk- oder Datenbankanbindungen kenne ich noch nicht, bin aber gerne bereit dies im Selbststudium zu erlernen.

Habe bereits gegoogelt, doch leider fand ich keine wirklich überzeugenden Ergebnisse. Hat vielleicht jemand von euch 'ne Idee?


----------



## MaikHSW (28. Jan 2010)

Hey.
Also die Frage ist doch, in welche Richtung du willst.
Ich hab momentan diverse Dinge im Kopf,
die aber alle schon etwas Tiefe erfordern und wahrscheinlich auch weitere Sprachen notwendig werden lassen.
In einem Thread hat mir z.B. jemand zum Bau eines Compilers für eine andere Sprache wie z.B. Scala geraten.
Das wäre interessant, aber mächtig.
Alternativ kann man z.B. eine Management-GUI für Linux und/oder Windows Server bauen.
Dies gibt es allerdings auch schon.
Hmm, sonst wären Spiele sicher auch eine sehr interessante, aber wieder komplexe Sache.
Ich habe in dem Bereich noch keine Erfahrungen, daher kann ich den Aufwand nicht abschätzen.
Genau so wenig wie ich deine Auffassungsgabe kenne.
Letzte Idee wären Webspiele. Man kann ja mit Java ideal sowas programmieren/entwickeln.
Das setzt aber wiederrum Kenntnisse in Themen wie JSP und so weiter vorraus.
Du musst ja auch keine große Grafik bauen, sowas "stumpfes" wie ein Simulationsspiel was erstmal nur Webseiten hat ist auch ne Idee und für den Anfang okay.

Alternativ kann man auch vielleicht über eine Auftragsarbeit nachdenken, wenn jemand eine ausschreibt.
Dies setzt allerdings vorraus, dass ihr oder du es wirklich packt und es auch brauchbar ist.

Genug Ideen?


Gruß


----------



## lenniii (29. Jan 2010)

Also ich kann dir zu Spielen raten.
Da macht das Testen noch am meisten Spaß und die Freunde kann man damit (ggf.) auch noch beglücken  ( :

Vorschläge:
PacMan / Snake / ChipsChallenge / Bomberman / Sudoku (recht einfach vom Prinzip, aber große gestalterische Möglichkeiten, und weit verbreitet) / ein neuer SideScroller ... sooo viel Auswahl, wenn man Zeit dazu hat 
Viel Spaß und Erfolg dabei!
LG Lenniii


----------



## MaikHSW (29. Jan 2010)

Hey lenni.
Spiele interessieren mich auch.
Mit welchem Framework arbeitest du da?
Ich habe bereits JME als Idee hier gefunden.
Womit arbeitest du?
Womit kann man den Einstieg am Besten realisieren?


Gruß


----------



## lenniii (29. Jan 2010)

Zugegeben, ich hab in Java noch keine Spiele geschrieben. Und auch erst ein einziges mit Frames - im Rahmen der Uni.
Mit Spielen konnte ich erst in Delphi Erfahrung sammeln. Nachdem ich nun aber auf 'nem Mac arbeite, hat sich das aber erledigt 
Einfach mal ein paar Tutorials lesen, du kannst dann ja hier deine Entscheidung posten, würde mich mal interessieren.
Ich bin dann mal schlafen.
Gute Nacht


----------



## The_S (29. Jan 2010)

MaikHSW hat gesagt.:


> Mit welchem Framework arbeitest du da?
> Ich habe bereits JME als Idee hier gefunden.





MaikHSW hat gesagt.:


> In einem Thread hat mir z.B. jemand zum Bau eines Compilers für eine andere Sprache wie z.B. Scala geraten.
> ...
> Alternativ kann man z.B. eine Management-GUI für Linux und/oder Windows Server bauen.
> Dies gibt es allerdings auch schon.



Puh ... was hast du denn für Vorstellungen? Bist du ein Überflieger? Der Junge hat 1,5 Jahren Programmiererfahrung und ist kein Profi. Ein Spiel mit JME, ein Compiler für eine komplexe Sprache wie Scala oder eine Management-GUI für Linux und/oder Windows Server sind imho völlig oversized!

Man kann auch hübsche Spiele ohne komplexes Framework entwerfen, wozu ich raten würde. Es gibt auch nen User hier, der in sowas sehr fit ist. Hat sogar ein Tutorial dazu geschrieben: http://www.ralf-bauer.org/java/tutorial/Tutorial.zip .

Ansonsten wäre es natürlich interessant, wie viele Mannstunden ein halbes Jahr bzw. 40 Lektionen umfasst. 52/2*5*8? Oder doch eher 40? Oder 2*40*0,45? ... Je nachdem würde ich etwas anderes empfehlen. Evtl. wäre ja ein Chatsystem etwas interessantes? Sowas kann man auch sehr schön weit ausbauen und optimieren  .


----------



## NthDegree (29. Jan 2010)

@MaikHSW: Vielen Dank für deine Nachricht, aber wie The_S sagt, ist das ganze doch noch ein paar Level zu hoch. 

@lennii: Vielen Dank auch an dich, hier hat es ein paar interessante Vorschläge dabei. Ich werde mich nun mal genauer damit befassen und mir mal ein paar Lösungsansätze überlegen.

@The_S: Danke für deine Klarstellung, wie gsagt, die Vorschläge von MaikHSW sind auf einem zu hohen Niveau. Unter "40 Lektionen" verstehe ich 40*45 Minuten.


----------



## MaikHSW (29. Jan 2010)

Hey zusammen
@ lennii 
Dann bist du ja genau so wissend/unwissend wie ich. *g*
@ The_S
Sorry, wie ich bereits schrieb ist das eine Sache in die ich mich reindenken möchte.
Daher kann ich auch den genauen Aufwand nicht schätzen.
Ich fand die Tutorials auf der Seite auf den ersten Blick sehr gut und auch die Snippets waren nicht schlecht.
Das der Bau eines Compilers mächtig ist weiß ich, habe ich ja drauf hingewiesen.
Ich weiß halt nicht wie fit und/oder schnell der Threadstarter lernt und versteht.
Mit Management GUI meine ich lediglich eine GUI für einen Teilbereich.
war blöd ausgedrückt.
Die quasi auf Buttondruck gewisse Befehle nach "unten" weitergibt und das war alles.
Hört sich nach viel Magie an, halte ich aber für nicht so unendlich kompliziert.
Spiele ohne Framework hört sich auch interessant an, gucke ich mir auch mal zu Beginn an.
Wachsen kann man ja immer noch 
Aber gerade ein Chatsystem?
Das stelle ich persönlich mir enorm schwierig vor.
Du musst ja Zu-/Abgänge kontrollieren, die Nachrichten müssen an alle gestreamt werden.
Die Leute könnten dazu noch von verschiedenen Plattformen mit verschiedenen Browsern kommen.
Auch wenn man es auf eine Plattform/Browser beschränkt, ich wüsste nicht wie ich etwas derartiges entwickeln könnte.
Bin ich nun einfach zu kurzsichtig oder ist das schon eine komplexere Aufgabe?
@ NthDegree
40x45 Minuten ist meines Erachtens nicht wirklich viel.
Also ich brauch in Summe schon länger für diverse Dinge.
Gibt es nicht irgendwas in Richtung OpenSource was klein ist und als Grundlage dienen kann?
Oder musst du alles neu erfinden?


Gruß


----------



## ARadauer (29. Jan 2010)

sowas? http://www.java-forum.org/jobboerse...cht-noch-java-programmierer-2.html#post606664

Schöne Swing GUI, Dinge aus einer Datenbank auslesen, Monitoring, Jobs ausführen usw...


----------



## NthDegree (29. Jan 2010)

@MaikHSW
Ja 40*45 ist nicht gerade viel Zeit, aber wir haben immer so Module ein Semsester lange. Der Lehrer meinte aber auch, dass wir zu Hause mal etwas machen werden müssen.
Zu meinem Wissen, wir haben das letzte halbe Jahr zusammen in der Schuel eine Agent-Verwaltung, ein Mi6 programmiert, als Einstieg in die OOP. Es enthielt zwei Guis. In eimen konnte man neue Agenten erstellen, also mit Namen, Vornamen, Nummer, Lizenz zum Töten und so weiter. In einem zweiten Gui wurde die Agenten dann in einer Tabelle ausgegeben, von da aus konnte man sie auch löschen und bearbeiten. 
Darauf aufbauend haben wir jetzt den Auftrag ein eigenes Projekt zu schreiben, etwa auf dem selben Schwierigkeitsgrad diese Agent-Projektes. Allerdigns möchte man ja nicht minimalistisch sein. :toll:

@ARadauer
Wie gerade beschrieben, sollte nicht zu komplex sein.:bahnhof:


----------



## Firestorm87 (29. Jan 2010)

Wenn der Schwierigkeitsgrad nicht sonderlich viel angehoben werden soll, dann könnte man dieses Konzept doch auch weiter spinnen...

Man kann zum Beispiel Aufträge einstellen und darin wiederum Zielpersonen erstellen.
Dann muss geprüft werden, ob der zugewiesene Agent die nötigen Sicherheitsrechte hat, keine Zielperson doppelt existiert und/oder in 2 Aufträgen vorhanden ist.. usw usw....

Fals das zu "langweilig" sein sollte könnte man die Zielorte dann auf einer Karte ausgeben... also Ich denke das Thema ist da sehr flexibel )


----------



## NthDegree (29. Jan 2010)

Sehr gute Idee Firestorm!
Das ganze gefällt mir sehr gut, nur weiss ich nicht, ob das geht mit dem Projekt weiterführend, denn wir müsses von ganze vorne beginnen, OOA + OOD + OOP usw. Pflichtenheft und was sonst noch so dazu gehört. Ich frage meinen Lehrer mal ob dies trotzdem möglich wäre.

Vom Schwierigkeitsgrad her sicher machbar.


----------



## Firestorm87 (29. Jan 2010)

Naja alternativ fängst du von Vorne an und managed keine MI6 Agenten, sondern Trucks und Truckerfahrer *g*

Aber Nachfragen kostet ja nix


----------



## The_S (29. Jan 2010)

MaikHSW hat gesagt.:


> Die Leute könnten dazu noch von verschiedenen Plattformen mit verschiedenen Browsern kommen.
> Auch wenn man es auf eine Plattform/Browser beschränkt, ich wüsste nicht wie ich etwas derartiges entwickeln könnte.
> Bin ich nun einfach zu kurzsichtig oder ist das schon eine komplexere Aufgabe?



Das ist gar nicht komplex. Ich hab kein Wort von Browser gesagt. Einfach ein Stink normaler J2SE Server und Swing-Clients  . Meine Azubis im 1. bis 2. Lehrjahr haben für einen simplen Chat inkl. Einarbeitung nicht mehr als 2, 3 Tage benötigt. Ein erfahrener Programmierer baut so ein simples Beispiel inkl. Server und Swing-Client auch in ner Stunde. An einen Scala Compiler würde ich mich nicht einmal mit über 5 Jahren Javaerfahrung ranwagen. Schon eher an ein Management-Programm für Server, was aber auch nicht unbedingt sein müsste. Zum Einen braucht man dazu viel zu großes Hintergrundwissen über den Server (auch ein Manko bei dem Scala-Compiler) und kommt vermutlich nicht um native Aufgaben rum.

Also ich finde, für den Zeitraum, ist so ein Chat doch ganz passend. Sowas kann man auch schön immer wieder um neue Funktionen erweitern  .


----------



## MaikHSW (29. Jan 2010)

Hey zusammen.
Entschuldigt bitte, wenn ich den Thread nun so zweckentfremde,
aber nun bin ich neugierig.
Die Idee von Firestorm ist simpel und total gut denke ich,
gerade weil du da vieles von deinem Wissen bereits nutzen kannst.
Aber im Rahmen der Stunden noch ein Pflichtenheft und den ganzen anderen Kram zu machen halte ich schon für ordentlich.

@ The_S
Ich glaube, irgendwie bin ich da doch zu doof.
Ein "einfacher" J2SE Server will ja auch geschrieben sein, oder?
Und "mal" eben Swing...
Du gehst vermutlich über das Netzwerk und nutzt entsprechende Kommunikation, oder?
Ein Scala Compiler ist sicher sehr komplex, da bin ich absolut bei dir.
Hintergrundwissen macht es doch gerade spannend *g*


Gruß


----------



## The_S (29. Jan 2010)

MaikHSW hat gesagt.:


> Ein "einfacher" J2SE Server will ja auch geschrieben sein, oder?



Ein einfacher hat keine 100 Zeilen Code.



MaikHSW hat gesagt.:


> Und "mal" eben Swing...



Deutlich leichter als Scala in seiner Vollständigkeit zu beherrschen, das nötige Hintergrundwissen zu haben, ... Außerdem kommt fast jeder mit Swing, AWT oder SWT früher oder später sowieso in Berührung. Zur Not könnte es auch ein einfacher Konsolen-Chat tun.



MaikHSW hat gesagt.:


> Du gehst vermutlich über das Netzwerk und nutzt entsprechende Kommunikation, oder?



Über was sonst?



MaikHSW hat gesagt.:


> Hintergrundwissen macht es doch gerade spannend *g*



Man kann es aber auch übertreiben. Vor nem simplen Netzwerkprotokoll zurückschrecken, aber nen Scala Compiler schreiben wollen :-D .


----------



## Firestorm87 (29. Jan 2010)

Also ein einfacher Chat, ohne User-Anmeldung, User-Liste etc ist wirklich nicht so komplex wie es sich vll am anfang anhört...

Ist nur nen kleiner Socket-Server, an den jeder seine User-Eingaben sendet und der das an alle Clienten verteilt...
Hat glaube Ich in seiner Ausbildung noch fast jeder mal erstellt  (Ja Ich auch)....

Das dann erweitern mit Anmeldung und User-Namen davor.... Online-Liste und vll dann "flüstern" (anschreiben von nur einem user) usw... auch dort ist viel Spielraum vorhanden.

Und die GUI an sich ist eigentlich auch nicht sonderlich komplex... Frame => Eingabezeile => Ausgabefeld und nen KeyListener würden es zur Not erst einmal tun....


----------



## ARadauer (29. Jan 2010)

NthDegree hat gesagt.:


> @ARadauer
> Wie gerade beschrieben, sollte nicht zu komplex sein.:bahnhof:



naja so komplex ist das auch wieder nicht. Daten aus DB auslesen, darstellen, Jobs ausführen, Daten screiben... aber naja

wie wärs mit einem kleinen Zeichenprogramm? Ein abgespeckte Paint?


----------



## MaikHSW (29. Jan 2010)

Hey zusammen.
@ The_S
Langsam beginne ich wirklich dich zu mögen.
Ich will ja gar keinen Scala-Compiler schreiben.
Das war ja lediglich eine Idee, die mir ein User mal zuwarf was er tun würde.
Also ich hätte keine Idee wie ich einen J2SE Server schreiben und mit Sockets kommunizieren sollte.
Hört sich zwar sehr leicht an, aber ich wüsste nicht mal genau wo man anfängt.
Bisher habe ich das Netzwerkthema nicht so gebraucht.
@ ARadauer
Ein abgespecktes Paint?
Halte ich für sehr aufwendig, auch wenn es da genug Bibliotheken gibt die einem da helfen.
Aber in der Zeitvorgabe inklusive Pflichtenheft und alles? Nee....


Gruß


----------



## The_S (29. Jan 2010)

MaikHSW hat gesagt.:


> Langsam beginne ich wirklich dich zu mögen.



Langsam beginne ich zu glauben, dass du ein Troll bist.



MaikHSW hat gesagt.:


> Ich will ja gar keinen Scala-Compiler schreiben.



Warum jetzt doch nicht mehr?



MaikHSW hat gesagt.:


> Also ich hätte keine Idee wie ich einen J2SE Server schreiben und mit Sockets kommunizieren sollte.



Musst dich halt mal ins Thema einlesen, ist gar nicht so schwer. Aber immer nur sagen "total schwer", "kenn ich mich net aus", ... davon wirds auch net besser.



MaikHSW hat gesagt.:


> Hört sich zwar sehr leicht an, aber ich wüsste nicht mal genau wo man anfängt.



Beim Server



MaikHSW hat gesagt.:


> Ein abgespecktes Paint?
> Halte ich für sehr aufwendig



Du willst ein Spiel mit der JME programmieren und hältst ein abgespecktes Paint für aufwendig???????



MaikHSW hat gesagt.:


> auch wenn es da genug Bibliotheken gibt die einem da helfen.



Was willst du immer mit deinen Bibliotheken? Am Anfang isses ganz gut und für so ein Projekt mehr als ausreichend, wenn man alles from scratch selbst macht.



MaikHSW hat gesagt.:


> Aber in der Zeitvorgabe inklusive Pflichtenheft und alles? Nee....



Aber in nen Framework einarbeiten und en Spiel programmieren (JME), in Softwareserver einarbeiten und ein Steuerungsprogramm entwerfen, oder ne komplett neue Sprache mit allen Facetten lernen (Scala) + Compiler dazu programmieren ...

So, ich geh ins Wochenende. Tschö!


----------



## ARadauer (29. Jan 2010)

MaikHSW hat gesagt.:


> @ ARadauer
> Ein abgespecktes Paint?
> Halte ich für sehr aufwendig, auch wenn es da genug Bibliotheken gibt die einem da helfen.
> Aber in der Zeitvorgabe inklusive Pflichtenheft und alles? Nee....


Lächerlich!! Seit ihr im Kindergarten?


			
				The_S hat gesagt.:
			
		

> Langsam beginne ich zu glauben, dass du ein Troll bist.


das glaub ich auch...


----------



## lenniii (30. Jan 2010)

Also ein abgespecktes Paint sollte nun wirklich keine GROßE Herausforderung sein.
Position bei Mausklick lesen, und verfolgen, blah. nicht wild. War bei uns als Seminaraufgabe dieses Semester, ich hatte meine schon, aber n Kumpel hat es gemacht. Zwar in Delphi, aber naja.
Ggf. kann ich die dir hier auch hochladen, wenn du wünscht, und er erlaubt.

Cool wäre es aber, wenn du das Bild als EPS Datei speicherst. Also als Vektorgrafik.
Du guckst dann im Prinzip wo der User geklickt hat und wo er losgelassen hat, bzw auf welche Koordinaten er das Bild gestreckt hat - also Koordinate X0/Y0  X1/Y1. Dann hieße es:
X0 Y0 moveto
X1 Y1 lineto

naja, da musst du dich dann halt mal reinlesen, stelle ich mir als spannend von. Als meine Abschlussarbeit wandle ich solch eine Grafik in eine Pixelgrafik um, deswegen komme ich drauf.

Deutlich weniger anspruchsvoll wäre ein Sudoku. Das ist leicht zu realisieren, und grafisch unendlich 'aufhübschbar'. Dazu gibt es auch 1000'de Anleitungen.

Ich würd' eins von beiden nehmen.
Chatprogramm klingt auch interessant, aber kann knifflig werden mit dem syncen von threads und so...

... das ist jedenfalls mein Senf dazu.
Viel Spaß dabei ;D


----------



## Firestorm87 (30. Jan 2010)

Ein Sudoko ist wirklich vom lösen her relativ einfach zu erstellen...
Hab mir neulich auf der Arbeit eins zusammen gebastelt für die 1-2 freien Minuten am Tag *g*

Die einzige herausforderung ist eigentlich das befüllen eines Sudokus ganz leeren Sudokufeldes mit den Startzahlen (und da ist es egal, ob Programmiertechnisch oder per hand aufm Blatt papier )


----------



## noobadix (30. Jan 2010)

Hallo,

als Vorschlag zur Güte würde ich dir einen Vokabeltrainer empfehlen. Das Grundgerüst ist schnell gemacht und die Funktionalität beinahe beliebig erweiterbar, sodass du deine Zeit gut einteilen kannst, indem du nach und nach Features hinzufügst, aber jederzeit abgabebereit bist.

Ein Projekt, an dem ich mich beteiligen würde, wäre ein Simulationsprogramm für simpelste chemische Reaktionen. Die Elemente würden doch hervorragende Objekte abgeben und auch hier wäre das Grundprogramm, das Periodensystem, relativ schnell gemacht und ebenso komplex könnte man es ausbauen, zudem hat es praktischen Nutzen und ist fächerübergreifend. Na, was meinst du?

Gruß


----------



## JohannisderKaeufer (31. Jan 2010)

Wenn ein Chat zu einfach und ein Malprogramm auch noch nicht ausreichend ist.

Warum dann nicht beides kombinieren?

Ein Malprogramm, bei dem gemeinsam, synchron an einem Bild gearbeitet werden kann.


----------



## lenniii (31. Jan 2010)

ihm ist es ja zu schwer, nicht zu leicht ;D


----------



## noobadix (31. Jan 2010)

In dem Buch "JavaVonKopfBisFuß" ist ein Chatprogramm erklärt. Gar nicht sooo komplex.


----------



## The_S (1. Feb 2010)

Firestorm87 hat gesagt.:


> Die einzige herausforderung ist eigentlich das befüllen eines Sudokus ganz leeren Sudokufeldes mit den Startzahlen (und da ist es egal, ob Programmiertechnisch oder per hand aufm Blatt papier )



Warum? Zum Lösen haste vermutlich nen Backtrace-Algorithmus. Dann wählste einfach die Zahl für jedes Kästchen zufällig aus, und falls es nen Konfligt gibt, wird n anders ausgewählt. Bzw. ein Schritt zurück gegangen, falls gar nichts geht.

Oder: Ein vorgefertigtes nehmen, und einfach die Reihen Vertikal/Horizontal vertauschen (natürlich immer nur im 3er Schritt).


----------



## Firestorm87 (1. Feb 2010)

The_S hat gesagt.:


> Warum? Zum Lösen haste vermutlich nen Backtrace-Algorithmus.


Korrekt.


The_S hat gesagt.:


> Dann wählste einfach die Zahl für jedes Kästchen zufällig aus, und falls es nen Konfligt gibt, wird n anders ausgewählt. Bzw. ein Schritt zurück gegangen, falls gar nichts geht.


Genau und am Ende einfach wieder willkürlich Zahlen löschen, so dass zwischen 20 und 30 Zahlen über bleiben.... (je nach Schwierigkeitsgrad)


The_S hat gesagt.:


> Oder: Ein vorgefertigtes nehmen, und einfach die Reihen Vertikal/Horizontal vertauschen (natürlich immer nur im 3er Schritt).


Geht auch....

Am Ende nur noch beachten, dass Sudokus für Zeitschriften etc meistens nur eine Lösung haben sollen/dürfen, damit man in der nächsten Ausgabe nur "eine", sondern "die" Lösung abdrucken kann,...


----------



## The_S (1. Feb 2010)

Achja genau ... das "Zahlen löschen" habe ich ganz vergessen  . Aber zum Glück programmieren wir hier ja nicht für Zeitungen  .


----------



## Firestorm87 (1. Feb 2010)

The_S hat gesagt.:


> Achja genau ... das "Zahlen löschen" habe ich ganz vergessen



Wäre dir sicherlich im ersten probelauf aufgefallen


----------

