Toss

About

Toss is a program to create, modify and play games. It includes a general game playing engine so that you can play any game you create against the computer. For example, did you ever wonder how your favorite game would feel if you removed the middle of the board? With Toss, it is easy to experiment! And after your game is ready, you can play it online and compete with your friends!

Play Online Against Toss

Pawn-Whopping BoardConnect4 BoardBreakthrough Board
Tic-Tac-Toe BoardCheckers BoardGomoku Board

More Games

News

  • 13/05/12   Toss release 0.8 with full JS compatibility with dynamics
  • 04/05/12   Dynamics debugged and animations now work in the JS interface
  • 04/05/12   Old rewriting example works with the JS interface
  • 25/04/12   Work on positioning with the JS interface
  • 30/03/12   Adding Hnefatafl to example Toss games
  • 21/03/12   Toss Client and website updated to a cleaned-up JS version
  • 09/03/12   First completely working all-JS Toss version
  • 05/03/12   Fully integrated OCaml and JS debugging and logs
  • 27/02/12   Compiled resources to access files from JS
  • 18/02/12   Integrating OCaml and JS unit tests
  • 11/02/12   Starting systematic unit tests of JS interface
  • 06/02/12   Toss release 0.7 with many improvements
  • 04/02/12   Definitions use play history: new Chess toss file
  • 02/02/12   Improved stand-alone JS interface with menhirLib
  • 31/01/12   First stand-alone JS interface (with js_of_ocaml)
  • 22/01/12   Learning Connect4 and Gomoku from videos
  • 21/01/12   Learning Breakthrough and Pawn-Whopping videos
  • 17/01/12   Integrating game learning logic and video stuff
  • 06/01/12   Parametrized grid detection for video
  • 28/12/11   Game video recognition improved with Hough lines
  • 10/12/11   Starting work on game recognition from video
  • 24/10/11   Learning games from examples in web interface
  • 19/10/11   Games learning engine and first buttons in the UI
  • 14/09/11   Simple editing of games added to web interface
  • 31/07/11   Store date and time of moves in games
  • 30/07/11   Corrected opponent lists in the Profile tab
  • 03/07/11   Added game descriptions viewable when playing
  • 30/06/11   View previous moves in a play
  • 27/06/11   Tabs and searching opponents in the profile page
  • 22/06/11   Better organized lists of plays
  • 19/06/11   News section on the front page of tPlay
  • 15/06/11   Bug with underscores in user names corrected
  • 10/06/11   New register site handles forgotten passwords
  • 05/06/11   Pre-caching client states improves response times
  • 03/06/11   Corrected tPlay 1.1 app accepted on App Store
  • 30/05/11   Large restructuring of JavaScript code finished
  • 24/05/11   Breakthrough generation from examples in SVN
  • 23/05/11   First tPlay application accepted on App Store

Create New Games

Go to the Create Games page to learn how to build new games with Toss.

Toss Features

Games in Toss are defined as mathematical structures and moves by structure rewriting rules. Payoffs are given by formulas of monadic second-order logic with real values.
  • Structures can have an arbitrary number of relations of any arity and additional real-valued functions.
  • Rules work by matching arbitrary left-hand side structures and replacing them with the right-hand side structure.
  • Continuous dynamics can be specified using ODEs. This allows for example to simulate movements and collisions.
  • Constraints can be put on the rule, including preconditions, invariants and postconditions.
  • Logic is used for constraints and payoffs. We support full monadic second-order logic with additional real arithmetic.
  • Solver in Toss is optimized: it does quantifier elimination and formula decomposition (with MiniSat).
  • Move hints are given in all games using our general game playing algorithm based on UCT or Maximax.