GNOME Sudoku

By Chris Baines

The Gnome Sudoku game, currently written in python, is not up to the standards set out here [1]. My project will complete the Vala port, and make sure its easy and worth to play.

[1] https://live.gnome.org/GnomeGames/Modernisation

Google Summer of Code Proposal: https://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/cbaines/12002

GitHub repo: https://github.com/cbaines/gnome-games

Reports

Achievements

  • Use GMenu to better integrate with the shell
  • Use GtkApplication to give the shell more information about the game

  • Addition of a number picker
  • Warning the user if a cell becomes unfillable
  • Display of possible numbers
  • Display of hints for the user
  • Display of broken cells to the user
  • Complete direct port of the python solver (not rigorously tested)
  • Partial direct port of the python generator
  • New game screen
  • Victory condition and animation
  • General Improvements
    • Better separation of view and model
    • Syntax support for the SudokuBoard model

    • Better breakage system for the model

Remaining Tasks

  • Complete the port of the generator (with improvements if possible)
  • Persistent state (you close the app, and can reopen it to continue with your game)
  • Saving games and management of saved games (on the new games screen)
  • Score/Timing (Need to discuss/think about this to decide if it should be implemented)
    • Implement a highscore table
    • Complete the game timing along with the ui
  • General UI work (Allan Day offered/provided mockups to help with this)
  • Logic Help screen
  • Improve the implementation and animation of the end game animation
  • Printing

The Code

The code that I am submitting for this project is available here: https://github.com/cbaines/gnome-games/tree/sudoku-vala-submission . To compile it, you can use jhbuild to build the current gnome-games module, then add my remote, then checkout the above branch, and do jhbuild make to build it. I have not tested these instructions, and I am not sure if this is the best way of doing this, but if you have any problems, just contact me.

I am also continuing developing outside the project on this branch: https://github.com/cbaines/gnome-games

Images

attachment:game.png attachment:new-game-screen.png attachment:number-picker.png attachment:possible-numbers.png attachment:warnings.png

Video

Early demo of the entry systems: https://www.youtube.com/watch?v=oFRmXnZfDg0

More videos becoming soon, once I can find some software to record my desktop well

Contact

Email: <cbaines8 AT SPAMFREE gmail DOT com>

IRC: chrisb (gimpnet - #gnome, #gnome-hackers, #gnome-love, #gnome-shell, #soc)

Blog: http://cbaines.blogspot.co.uk/

Outreach/SummerOfCode/2012/Projects/ChrisBaines_GNOME_Sudoku (last edited 2013-12-03 18:33:53 by WilliamJonMcCann)