Skip to content
/ Picross Public

Picross (nonogram) puzzle program.

License

Notifications You must be signed in to change notification settings

RoanH/Picross

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Picross

Picross (nonogram) implementation inspired by the NDS Picross game.

Jump directly to downloads

Introduction

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.

The program looks like this:
GUI

Features

  • 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.

Rules

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!

Controls

A list of controls for the game.

Playing

General controls needed to play the game.

Mouse
  • 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
Keyboard
  • 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

Moving

  • 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

Test mode

  • T to enter test mode
  • C to leave test mode and save changes
  • V to leave test mode and undo changes

History

  • Ctrl+Z to undo the last edit
  • Ctrl+Y to redo the last edit

Check

  • R to toggle showing the original solution (note that other solutions might also be valid)

Downloads

Requires Java 8 or higher

All releases: releases
GitHub repository: repository

Development

This is an Eclipse + Gradle project with Util as the only dependency.

History

Project development started: 4th of October, 2019.