XO Laptop Sudoku

From Stack Overflow
Jump to: navigation, search

Contents

Design Goal

The XO Sudoku project is meant to be a lightweight sudoku application running under the OLPC XO laptop operating system. Rather than attempting to port [Python Sudoku] over to the new interface, I decided it would be easiest and best to write a new framework from scratch, possibly porting over the board creation (and solving?) code at a later date. This keeps the app leightweight and "native" to the special UI and system constraints of the XO.

Usage

General Usage

Sudoku-ui-mockup.png The UI is designed to be useful by both mouse and keyboard. The board itself is on the left, with a currently highlighted cell. The cell can be moved by clicking with the mouse or using the keyboard (or, presumably, the directional pad next to the screen.) When a cell is selected, the user can toggle "tick mark" numbers with the keys 1..9 or clicking on the appropriate square of the grid on the upper right. Alternately, the user can type shift-1..shift-9 to enter an actual guess or can click on a square in the lower right.

Entering A New Puzzle

Entering a new puzzle should bring up a simple form with 9x9 small text boxes. The user can enter numbers in the boxes to be "hard coded" numbers, leaving the rest blank. There should be an "OK" and "Cancel" button. There can also be a "random easy," "random medium," and "random hard" button to automatically fill in a random puzzle. At the very minimum, the system should check that the entered numbers are valid (i.e. none of the same number in any row/column/3x3) before allowing the user to click "OK." It would be nice to invisibly run it through an auto-solver to verify that there is, indeed, one and only one solution, but I'd consider that an "icing on the cake" feature to be completed after the initial beta.


Sharing With Neighbors In Wireless Grid

??? ...no idea how this works, something with the Activity API... Ensure that the board object can be serialized (pickled) to make this easier in the future. Will ask for help when the time comes.

Menus

  • Activity
    • Create New
    • Save
    • Load
    • (share with neighborhood?)
    • Exit
  • Help
    • Instructions
    • Fill in current tick marks
    • (hint?)
Personal tools