Welcome to my Sudoku puzzle game! - An interactive web Sudoku puzzle game developed in HTML, CSS, and JavaScript.
๐ https://huaminghuangtw.github.io/Web-Sudoku-Puzzle-Game/
Since I first studied parallel programming, I developed a personal side project that aims to solve large Sudoku puzzles as efficiently as possible by means of various parallelization techniques and solving algorithms. The main focus/goal of this project, however, is not only to make an interactive Sudoku puzzle game that the user can play around with, but also to hone my web development/design skills. Based on RedFlyer Coding's tutorial video on YouTube, I've added several widgets and features/functionalities in the webpage which I hope you will enjoy and have fun!๐
Sudoku is one of the most popular puzzle games of all time. The objective of Sudoku is to fill a 9-by-9 grid with digits from 1 to 9 such that each column, row, and box (or called "subgrid", "region", "block") contain every number in the set {1, ... , 9} exactly once.
This web application features generating and solving standard 9-by-9 Sudoku puzzles of different difficulty levels (i.e., easy, medium, and hard). For the Sudoku generating algorithm, please refer to [1]. The backtracking technique [2] is implemented as the solving algorithm here.
A collection of test grids of various difficulty levels are present in the Test_Cases
directory. These text files are used for the initial Sudoku boards of respective difficulty levels. When the user clicks the "Refresh puzzle" button, random Sudoku boards are subsequently generated via the approach proposed by Rob McGuir [1].
[1] A Sudoku puzzle generator and solver JavaScript library - sudoku.js
[2] Wikipedia - Sudoku solving algorithms: Backtracking
Whether you use this project, have learned something from it, or just like it, please consider supporting it by buying me a coffee or making one-time donations via PayPal, so I can dedicate more time on open-source projects like this. ๐ช๐
Thanks!:heart: and Cheers!:beers:
If you have any question or suggestion, feel free to contact me at [email protected]. Contributions are also welcomed. Please open a pull-request or an issue in this repository.