Picross (nonogram) implementation inspired by the NDS Picross game.
The goal of the game is to complete the grid with filled tiles and cross tiles according to the restrictions given on the sides. A more detailed explanation is given below.
- Randomized Picross puzzles of a customizable size and density (can also be shared using the seed).
- Input support for both the mouse and the keyboard.
- A test mode where you can try out ideas before applying them to the board.
- Realtime feedback via the numbers on the side.
- Option to see a possible solution for each puzzle.
- Zoomable and movable board where the hint numbers follow the view so they are never off screen.
- Ability to update multiple tiles at the same time by dragging.
- Undo & redo functionality.
- Option to clear incorrect tiles without having to see the solution.
See also the Wikipedia article.
The goal of the game is to change every tile in the grid to either a filled tile or a tile with a cross in it. To do this the numbers in front of each row and the number above each column give hits as to which tiles have to be filled. Each individual number represents a sequence of filled connected tiles on that row or column. These sequences appear in the same order as their associated numbers. So for example the hint 2 3 2 1 means that in order there is a sequence of 2 filled tiles, followed by a sequence of 3 filled tiles, followed by a sequence of 2 and finally followed by a sequence of 1 tile. Between these sequences are one or more cross tiles.
As you are playing the program will start graying out the numbers. When a number turns gray this means that you have enclosed a sequence of that length and it is connected via a sequence of filled and/or cross tiles to the side of the game board. If a number turns red this means that there is an error with the sequence representing the number that turned red. If all the numbers turn red this means that either too many or too few sequences are present on a line/column while the entire line is filled with filled tiles or cross tiles.
Filling the entire grid using these hints completes the game. Have fun!
A list of controls for the game.
General controls needed to play the game.
- Left mouse button to fill a tile
- Right mouse button to place a cross
- Left click a filled tile to empty it
- Right click a cross to remove it
- You can select an area by dragging to update multiple tiles at once
- W to move up
- S to move down
- A to move left
- D to move right
- Space bar to fill a tile
- Shift to place a cross
- Press space bar on a filled tile to empty it
- Press shift on a cross to remove it
- Up arrow to move the view up (and board down)
- Down arrow to move the view down (and board up)
- Right arrow to move the view right (and board left)
- Left arrow to move the view left (and board right)
- Mouse scroll wheel to zoom in and out
- You can drag the game around with the mouse if you click and hold outside the grid or also hold down Ctrl
- T to enter test mode
- C to leave test mode and save changes
- V to leave test mode and undo changes
- Ctrl+Z to undo the last edit
- Ctrl+Y to redo the last edit
- R to toggle showing the original solution (note that other solutions might also be valid)
Requires Java 8 or higher
All releases: releases
GitHub repository: repository
This is an Eclipse + Gradle project with Util as the only dependency.
Project development started: 4th of October, 2019.