Hebrew Word Puzzle Game
CSS Python JavaScript Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bootstrap
hspell
.gitattributes
.gitignore
Readme.md
app.css
app.html
app.js
bootstrap.min.css
bottle.py
dialog.html
hspell.py
jquery.cookie.js
knockout.mapping-2.4.1.js
ko_test.html
ko_test.js
more.css
more.html
more.js
run_tests.bat
sample_db.dat
sample_db_create.py
server.py
server_side.py
server_tests.py
ui.html
webserver.py

Readme.md

Shabetz-Mila

Online word puzzle game in Hebrew for 2 players.

Screens


Main Screen

  • Start new game
  • List of current games
  • List of old games
  • Settings

Game Screen

  • Header: player scores

  • Body: word to play, letter matrix.

  • Footer: actions

    Actions

    • Return to menu
    • Pass
    • Submit Word
    • Show played words
    • Reset matrix

New Game Screen

  • Select opponent from:
    1. List of recent opponents
    2. Enter opponent name
    3. Random opponent
  • Start game

Database


Players Table

  • Player name
  • Player id
  • Player games

Games Table

  • Game id
  • Letters list
  • Player A id
  • Player B id
  • Player A letter indexes
  • Player B letter indexes
  • Player A played words
  • Player B played words

Database actions:

  • Create player
  • Create game
  • Play turn
  • Get player
  • Get game

TODO

  • Use Apple specific "Web Clip" API to create an icon for the game and other stuff (See http://tinyurl.com/7384jyk)
  • Fix getting 404 on favicon.ico
  • Split HTML to several files
  • Remove Bootstrap and make JQM update the visuals when KO changes
  • Remove cookies and store information in KO objects

IDEAS

  • Build a list of letter occurrences based on Scrabble values (a list of 27 integers).
    • To generate random letters based on occurrence, we generate a list of letters based on the following algorithm: MAX_OCC = 10 for l in occ_list: for c in range(l): letter_list.append(MAX_OCC - letters[l]) Then we get random values from the letter_list.
    • If we decide not to use "final" letters, then their occurrence should be MAX_OCC.
  • Move from Pickle store to a database (sqlite):
    • I need a database schema. It needs to have a table for configurations and hold a row for version of the schema.
    • The version row should always be written last so that if the db transaction fails it will be easy to recognize.
    • When opening the database file I need to check for the version.
    • The bottle microframework has a sqlite plugin, I should use it
  • Use an online service for spellchecking, and if doesn't exist, use emscripten to convert hspell to a JS library.
  • Allow users to add words to the dictionary