Flutter-Sudoku

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.

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

  • 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

  1. Clone this repository

  2. Set current working directory to sudoku

  3. Run these commands:

    flutter pub get
    flutter pub upgrade
    flutter pub outdated
    
  • This will install all the required packages
  1. Run flutter doctor to check fo any issues (Optional)

Steps for exporting to a PWA or Web App

  1. Set current working directory to sudoku

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

  1. Set current working directory to sudoku

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

  1. Set current working directory to sudoku

  2. To export as an Android app run:

    flutter build apk to build a fat APK for all ABIs

    OR

    flutter 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:

Screenshots:

  • Main Screen while solved with dark theme:

    Solved_Dark


  • Main Screen while solving with light theme:

    Solving_Light


  • Choose Number Alert:

    Choose


  • Game Over Alert Box:

    Result

  • Options:

    Options

GitHub

https://github.com/VarunS2002/Flutter-Sudoku