Niklas Kölln
DE / EN
Screenshots der Spiele »SwingCross« und »Javatzee!« vor einem Hintergrund aus abstrakten weißen Quadraten

Swing­Cross

Ein Picross-Spiel in Java von Niklas Kölln

Projektbilder

  • Screenshots aus »SwingCross« zeigen das Hauptmenü sowie ein durchgespieltes Level
  • Weitere Screenshots aus »SwingCross« zeigen den Level-Editor und ein zufälliges Level

Beschreibung

»SwingCross« ist ein kleines Spiel, welches ich im Frühsommer 2020 in Java programmiert habe, als ich im Rahmen meines Medieninformatik-Studiums gerade frisch gelernt hatte, wie man objektorientiert programmiert. Nachdem bereits zuvor jeder Kurs-Teilnehmer einen Minesweeper-Klon in Java umsetzen sollte, galt es als Nächstes, ein eigenes Spiel zu programmieren. Ich entschied mich, den Puzzle-Klassiker »Picross« umzusetzen und um einige Features zu erweitern. Dabei kam Javas internes GUI-Toolkit »Swing« zum Einsatz , welches dem Spiel seinen Namen verleiht.

Ein Picross, auch bekannt als Nonogramm, ist eine Art Bilderrätsel, welches 1986 von der japanischen Designerin Non Ishida erfunden wurde und vor allem durch diverse Videospielumsetzungen von Nintendo bekannt wurde. Das Spielprinzip ist einfach: Jedes Picross besteht aus einem Pixelraster und es gilt herauszufinden, welche Pixel eingefärbt werden sollen und welche nicht. Dazu stellt jede Reihe und Spalte Hinweise in Form von Zahlen bereit, die Aufschluss über die Pixel in dieser Reihe bzw. Spalte geben. Bei der Zahl »5« etwa müssen in der entsprechenden Reihe/Spalte genau 5 Pixel am Stück eingefärbt werden. Bei den Zahlen »2, 1, 3« müssen erst 2 Pixel am Stück, dann eins alleine und dann wieder 3 Pixel am Stück eingefärbt werden. »Malen nach Zahlen« meets »Sudoku«, quasi.

Lösen eines Picross – Beispiel

  1. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 1: Dieses Picross ist 5×5 Felder groß – die Reihen mit einer 5 können also direkt vollständig ausgefüllt werden

  2. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 2: Auch die dazwischenliegende Reihe kann direkt ausgefüllt werden: 3 einzelne Felder gefüllt, jeweils mit Zwischenraum = 5 Felder

  3. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 3: Gleichzeitig sind die erste und letzte Spalte gelöst – die übrigen Felder können also ausgeschlossen werden (mit Rechtsklick markieren)

  4. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 4: Durch die Eingrenzungen im vorherigen Schritt ergibt sich nun auch die zweite Reihe: 2 einzelne Felder, getrennt durch ein leeres Feld

  5. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 5: Übrig bleibt nur ein Feld in der ersten Reihe. Da Spalten 2 und 4 schon vollständig sind, kann es nur in die mittlere Spalte gehören

  6. Screenshot aus SwingCross, in dem der beschriebene Schritt demonstriert wird.
    Schritt 6: Fertig gelöst! Das Motiv: Ein Haus.

In meiner Version von Picross gibt es 6 unterschiedliche Level sowie die Möglichkeit, zufallsgenerierte Level zu spielen. Das Spiel bietet jederzeit die Möglichkeit, Tipps anzuzeigen, wenn man nicht weiter weiß oder einen Fehler gemacht hat. Außerdem lassen sich in einem Editor eigene Muster zeichnen und in einer Datei speichern, die wiederum als spielbares Level vom Programm eingelesen werden können.

»Kniffel« in Java

Als Programmieranfänger hatte mir die Umsetzung viel Spaß gebracht. Nun hatte ich »Blut geleckt« und so habe ich mir wenig später eine weitere Herausforderung gesucht: das beliebte Würfelspiel »Yahtzee« (im Deutschen als »Kniffel« bekannt) in Java umzusetzen. Entstanden ist »Javatzee«! (Der Name ist vielleicht kein Highlight …)

In-Game-Screenshot von »Javatzee«.

Aller Anfang ist schwer

Ja, Swing war schon 2020 veraltet. Ja, niemand würde solche kleinen Spielchen heute ernsthaft als Java-Desktop-Applikation schreiben – sowas ist viel besser als Web- oder Mobilanwendung aufgehoben. Ja, den Game-of-the-Year-Award werde ich damit wohl nicht mehr abstauben. ;)
Dennoch bin ich stolz auf SwingCross und Javatzee, stellen diese kleinen Projekte doch meine ersten Schritte in der Welt der Anwendungsentwicklung dar.

Beide Spiele gibt es hier als .jar-Datei zum Download (Java ist zum Ausführen erforderlich).

Weitere Projekte

Kontakt

Du hast Interesse an einer Zusammen­arbeit oder sonstige Anliegen? Ich freue mich, von Dir zu hören!