Futoshiki

Watch the gameplay demonstration here on YouTube.

View the GitHub repository for this project here.


Game Overview

Futoshiki is a 2D puzzle game that is able to update itself to create new puzzles based on the conditions picked by the player. This project was made using Java in NetBeans using JavaFX for the GUI. The goal of Futoshiki is to fill in all the tiles on the board with the correct numbers that do not break any constraints.


Automatic Game Creation

At the start of the game, or when the settings are changed, the game will populate the puzzle with data so that it represents a partially complete puzzle. It sets some constraints, and fill some squares with values.


Game Options

The game can be customised in a few ways. The player can pick the size of the grid they want to play on and the difficulty of the game which changes the amount of constraints. The player can also ask for a hint that tells them where a correct number is positioned (the game will also tell you if you have any illegal parts to the game). Other than these, there are other smaller details like setting their name, picking a theme colour, creating a new game, checking if their answers are correct and quitting the game.


Learning Experiences

This was a very big project with a lot of coding involved to get everything working correctly. So with a larger project, it was very helpful at learning to manage a large volume of code. Making the code automatically create a solvable puzzle each time no matter the settings was a great challenge but was very rewarding when it all worked.

Example coding areas involved:

  • Abstract classes
  • Concrete sub-classes
  • Automatic puzzle creation
  • Event handlers
  • Java GUI
  • 2D arrays
  • Testing Driven Development
  • Overrides