Thumbnail: SwingCross

SwingCross

Ein Picross-Spiel in Java von Niklas Kölln

Nach unten scrollen Zurück zur Hauptseite

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 jede*r Studierende*r 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 (daher der Name).

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 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 …)

Titelbildschirm von „Javatzee“ In-Game-Screenshot von „Javatzee“

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

Kontakt

Zur Verarbeitung der Formulardaten nutze ich Formspark. Zur Datenschutzerklärung