Archive

Posts Tagged ‘Kalaha’

Kalaha in Java

26. Februar 2011 Hinterlasse einen Kommentar

Das Projekt habe ich jetzt abgegeben und mir wurde erlaubt den Code zu veröffentlichen… Aber zuerst die Anforderungen des Projekts…

image

image

 

Screenshots

Hauptmenü

image

Replay

image

Spiel Laden

image

Neues Spiel starten

image

Wird geladen… Bitte warten… sagt Boxxy…

image

Das Spiel…

image

Das Replay mit Bug… Die Angezeigte Runde ist nicht korrekt… Korrigiere ich nicht mehr… Smiley

image

Optionen

image

 

Damit das Programm auch als Applet funktioniert, muss das Applet signiert werden.

Dazu benutzt man keytool und jarsigner. Beide Programme befinden sich im Java bin Ordner…

Wie das Signieren funktioniert wird hier genau beschrieben.

 

Das Programm –> Skydrive

Der Code –> Skydrive

Viel Spaß damit… Anfragen auf Verbesserungen, bitte nicht an mich, da ich Java und Eclipse jetzt von meiner Platte schmeiße… Das heißt… Nimm den Code und verbessere selbst… Aber erwähne mich und die Seite in den Credits…

Kategorien:Code, Java Schlagwörter: , , ,

Java sucks…

17. Februar 2011 2 Kommentare

Ich bin mit mein Java Projekt jetzt fast fertig, wobei ich erst am 23. Januar angefangen habe… Es ist extrem OOP-lastig geworden… Ich habe über 50 Klassen; der längste ist 18 Seiten lang, ca. 1000 Zeilen. Die Hauptvoraussetzung war die strikte Trennung zwischen Grafik und Logik. So musste ich vieles über Events lösen… Und Java Events sind… Komplett fürn Arsch…

Aber bevor ich mich über Java auslasse… Ein Vorschau auf mein Projekt… Ich werde später den Code zum Download hier verlinken…

fap2000

fap2000_2

fap2000_3

Die KI hat noch ein paar Bugs… Und es ist auch selten dämlich… Noch!… Aber ich habe ja noch bis 25. Februar zeit. Für das Hauptmenü werde ich mir noch was künstlerisches einfallen lassen. Zur Zeit sieht es ziemlich karg aus.

Und hier die Klassen…

image

Nun zu Java…

Java sucks weil…

  • Keine unsigned Datentypen – Vor allem das umwandeln von Long in Hex machte es mir viele Probleme, wenn man die magische Grenze eines signed übertritt… Da wird der Wert nämlich negativ und Java behandelt den Wert auch als Negativwert…
  • Zwang zur Nutzung von Anonymen Klassen – Mein Code ist damit so was von “dreckig”… Ich habe dann immer das Bedürfnis duschen zu müssen, wenn ich den Code sehe. /* Edit */ Hauptsächlich im Zusammenhang mit Listener gemeint
  • @Override hat gar kein Nutzen – Ob ich es jetzt weglasse oder mit dranschreibe… Keinen Unterschied… Nichts…
  • Getter Setter vollkommen Käse – Das man Methoden nutzt um “Properties” Werte zuzuweisen, kann ich in C++ vorkommen verstehen… Aber in Java? WTF! Warum? Java möchte Modern sein, aber das ist absolut nicht modern. Meine Klassen ist gegen Ende vollkommen mit den Getter/Setter Methoden gepflastert… Vollkommen unübersichtlich… Tuet mir leid das sagen zu müssen… Visual Basic <= 6.0 ist eine “unfertige” unschöne (milde ausgedrückt) Sprache, aber VB hatte schon richtige Properties… Im Gegensatz zu Java… Ich konnte Property Zuweisungen in einer Zeile schreiben… Mein Code war übersichtlicher.
  • Das Threading ist lächerlich beschränkt – Ich wollte ein Thread für eine unbestimmte Zeit anhalten, aber sehe da: suspend() ist Deprecated. Ich konsultierte Google und nichts… Wenn man in Java ein Thread anhalten möchte, geht es nicht… Man muss den kompletten Thread beenden. Ist das nicht schön? Edit … Es funktioniert mit wait() und notify() – danke upeuker
  • abstract methods in Nicht-Abstrakte Klassen – Geht nicht
  • Extension von Klassen – geht nicht… Ich muss eine Klassen immer erben um es erweitern zu können…
  • Überladen von Operatoren – geht nicht … und ich wollte so gern Child-Nodes durch den plus Operator hinzufügen
  • Indexer – gibt es nicht… Ok… Das ist vielleicht zu viel verlangt…
  • Mehrere Klassen in einer Datei – geht nicht
  • Primitive Datentypen – Ein schlimmes übel. Folgendes ist absolut nicht möglich: intData.toString() … Man muss entweder so: Integer.toString(intData) oder es so: Integer intData2 = intData; intData2.toString(); … Das ist gar nicht OOP… Mich wundert es aber wieso ich Primitive zu einem Object zuweisen kann oder warum der ++ Operator beim int Überladen ist… Compiler-trick vielleicht?
  • Trennung zwischen Code und GUI – Nicht gelungen… bzw. nicht vorhanden…
  • Events/Listeners – Die schlimmste Ausgeburt der Hölle… So etwas dumm komplexes und unübersichtliches habe ich echt noch nie gesehen. Frage: Warum ist dieser Dreck nur mit Interfaces gelöst worden? Ich muss deswegen Methoden implementieren, dass ich absolut nicht benötige. Wenn ich nur den Mausklick auswerten will, warum muss ich zum Teufel mousePressed() implementieren? Warum muss ich das als anonyme Klasse implementieren? Warum muss ich mein Code komplett mit dem Mist zukleistern? Schlimmer ist ja noch, wenn man Benutzerdefinierte Events hat. Ich habe 30 Zeilen Code geschrieben um nur ein (1) Event auslösen zu können… Warum? Weil… Man benötigt eine Collection für die Listeners, man benötigt Methoden für den Collection (add, remove, size), man benötigt ein Interface, man benötigt eine Methode als Auslöser… und und und… OMG… In C# sind das ganze 3 Zeilen Code… 2 wenn man den DefaultEvent nutzt…
  • /*Edit*/ Parameterübergabe mit by Reference – geht nicht … Man muss den Umweg über Klassen gehen.

Und warum ist das so? Weil… Java sucks!

Kategorien:Java Schlagwörter: , ,