# Touchop

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

# What is Touchop?

Touchop is an mathematical puzzle game. Each level of the game provides a fixed set of formula fragments and mathematical operators. These building blocks have to be combined such that the resulting formula meets a stated objective.

The game starts with simple levels requiring you compose formulas like 1+1 to achieve the objective value 2. Using common arithmetic operations, you will have to set up more and more advanced expressions. Later, you will use operators to form computer programs for image compositions, animations and interactions. Finally, if ever this project is to be completed, the final level will require you to compose a program that is the game itself. ;)

Touchop is a game for all ages. Its easiest levels can be played in primary school. Meanwhile, its most difficult levels require a solid education or even a university degree. Graphical feedback on the built formulas allows you to do experiments and iteratively search for the solution.

# Features

Technical features:

• UI concept is based on drag-and-drop and compatible with the upcoming tablet design.
• Non-unique solutions appeal to creativity and make mathematical concepts explorable.
• Platform independent and light weight code based on SVG, XSL, and JavaScript.

144 Levels are currently implemented for the following mathematical domains:

• Arithmetics
• Plus/Minus
• Multiplication
• Division
• Power
• Self defined variables
• Expressions with free variables
• Function plots
• Linear Functions
• Polynomials
• Hyperboles
• Parametric plots
• Trigonometric functions
• Turtle graphics
• Image processing

# Example

The animation below shows the process of solving a level with the objective result 4. Available ingredients are the numbers 1, 2, 3, as well as the operators times and minus: The level definition for this example looks like this:

```<touchop>
<test domain="algebra" win="4"/>
<op name="minus" xy="100,200"/>
<op name="times" xy="200,300"/>
<atom value="1" xy="100,100"/>
<atom value="2" xy="200,100"/>
<atom value="3" xy="300,100"/>
</touchop>
```