Project title: HITORI Solver
Project description (typically 100 words):
The purpose of implementing/ developing Hitori puzzle game is not only for fun and entertainment, but also it has many other important benefits like it increases concentration power, sharpens mind, develops problem solving abilities, boosts logical reasoning and slows down aging of brain.
Hitori (Hitori ni shite kure; literally "let me alone")is a type of logical puzzle from Japan published by Nikoli which involves different rules and combinations for solving it. It is played on an n*n matrix filled with numbers. It is highly addictive and easy to learn since there are only three simple rules. The main reason for developing this puzzle in java is can access any where due to its portable environment as java is Platform Independent.
Solving this puzzle needs certain logic. For finding an algorithm to solve Hitori we should transform HITORI into a propositional satisfiability problem, rendering it solvable by SAT solvers. Due to immense complexity of problems like Hitori, the size of boolean formula rapidly becomes huge when increasing the playing field (for a typical 17*17 matrix the size of the generated formula tends to be over a gigabyte and it can take much time to generate), making the SAT approach unsuitable for large matrices.
1.1 Rules
Rule1: Numbers must not appear more than once in each row and each column.
If there are cells with the same number in the same column or row, we have to paint some or sometimes all of them, so that the numbers appear at most once.
Rule2: Painted cells are never adjacent in a row or a column.
This rule is that we cannot paint cells which have a painted neighbour cell. We can easily see that our previous solution is wrong, because we have painted adjacent cells in a column.
Rule3: Unpainted cells create a single continuous area, undivided by painted cells.
Painted cell must not divide the field in seperate groups of unpainted cells. There should exist a path from every unpainted cell to any other unpainted cell, passing only unpainted horizontal/vertical neighbour cells.
List of requirements (objectives):
Essential
• Develop a tool that allows a user to enter the puzzle and also to solve the puzzle manually.
• Tool must be developed in such a way that puzzle can be solved automatically
• Tool should also be able to assist in the creation of new puzzles.
• Basic formula should be translated into propositional formula, where the particular solver makes the formula true and translates back to a puzzle solution.
Recommended
• SAT-solving techniques can be used to develop this type of tools very efficiently and in a friendly user way.
• This puzzles can be tackled in a generic way with help of SAT solvers.
• Brute force method can also be used to develop this type of tool.
Optional
• Multiplayer competitive functionality.
• A fully functional stand-alone application with all the above mentioned functionalities.
Kia ora! on2itonline are a NZ based web and software design company who have seen you here on the freelance market and are really excited about working with you and treating you to the full service, professional experience.