Flutter-Sudoku
Play Online
Downloads
This is a fully fledged Sudoku game written in Dart using Flutter.
It can be exported to Android, iOS, Fuchsia, Windows, Linux, MacOS, PWA or a Web App.
Installation & Usage:
- Can be played online in the browser. See Play Online
- Can be installed as a Progressive Web App on any platform. See Use Progressive Web Apps
- Can be installed as an Android app. See Downloads
Building:
Requirements:
- Flutter
- For Exporting to Android:
- Android Studio 3.0+ / IntelliJ IDEA 2017.1+ with Flutter Plugin and Dart Plugin (recommeded)
- Android SDK from Android Studio or IntelliJ IDEA (API Level 30 recommended)
- Java SE JDK (v8 recommended)
- Gradle
- Set ANDROID_HOME and ANDROID_SDK_ROOT variables
- Add JDK to PATH
- For Exporting to Web:
- Set current working directory to sudoku
- Run these commands:
flutter config --enable-web
- For Exporting to Windows:
- Set current working directory to sudoku
- Run these commands:
flutter config --enable-windows-desktop
Installing required packages
- Clone this repository
- Set current working directory to sudoku
- Run these commands:
flutter pub get flutter pub upgrade flutter pub outdated
- This will install all the required packages
- Run
flutter doctor
to check fo any issues (Optional)
Steps for exporting to a PWA or Web App
- Set current working directory to sudoku
- Run
flutter build web --release
- This will compile the program and store the files in the
sudoku/build/web
directory - You can run a simple http server in this directory to run your app in the browser
- dhttpd is a Dart package for running a simple http server
Steps for exporting to Windows
- Set current working directory to sudoku
- Run
flutter build windows --release
- This will compile the program and store the files in the
sudoku/build/windows/runner/Release
directory - It will export a release build that can be run directly
Steps for exporting to Android
- Set current working directory to sudoku
- To export as an Android app run:
flutter build apk
to build a fat APK for all ABIsORflutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
to build multiple APKs for every ABI
- This will export a release build of the apk file signed with debug keys which can be installed on an Android phone or emulator
- The APK file/s will be saved in
sudoku/build/app/outputs/flutter-apk
- Minimum Android Version Required : Android 4.1.x Jellybean (API Level 16)
Features:
- Uses a combination of a Sudoku generation and solving algorithm to create a unique game
- Generates a New Game when you start the app
- Clicking a box displays a dialog with buttons 1-9 to input in the box
- Clickable buttons will initially have no number and will turn red after the first click
- After completely solving the grid, if the solution is correct it will alert you that you successfully solved the Sudoku
- The numbers in all the clickable buttons will turn blue if the solution is correct (This will also happen if you click Show Solution)
- 4 different difficulty levels to choose from :
- Beginner – 18 empty squares
- Easy – 27 empty squares
- Medium – 36 empty squares
- Hard – 54 empty squares
- New Game
- Restart Game
- Show Solution
- Dark and Light theme
- Material Design
Note:
- flutter_animated_dialog is used for animated alert dialogs
- shared_preferences is used for saving preferences locally
- splashscreen is used for the splashscreen
- url_launcher is used for hyperlinks
- Referred Algorithms:
- Sudoku Generation Algorithm in Java
- Sudoku Generation and Solving Algorithm in Python
- Untested on iOS, MacOS, Linux and Fuchsia. Additional chnages might be required to work correctly
- If you face any issue or have suggestions then feel free to open an issue on GitHub
Screenshots:
- Main Screen while solved with dark theme:
- Main Screen while solving with light theme:
- Choose Number Alert:
- Game Over Alert Box:
- Options:
Download Sudoku game source code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.