Get Started. It's Free
or sign up with your email address
Tetris by Mind Map: Tetris

1. Game Movement

1.1. All functions will take a tetra, return a tetra

1.1.1. tetra-next: returns tetra 1 block lower

1.1.2. tetra-rotate-left: returns tetra rotated left

1.1.3. tetra-rotate-right: returns tetra rotated right

1.1.4. tetra-move-left: returns tetra moved 1 block left

1.1.5. tetra-move-right: returns tetra moved 1 block right

2. Rendering

2.1. Abstract per block?

2.2. Foldr

3. Types of Collisions (return Booleans

3.1. Collision1

3.1.1. Tetra hits ground, added to pile

3.1.1.1. Comparing Tetra, World-Size

3.1.2. Tetra hits list of blocks, added to pile

3.1.2.1. Comparing Tetra, Pile

3.2. Collision2

3.2.1. Tetra hits the wall

3.2.1.1. comparing tetra, world-size

3.3. Collision3

3.3.1. Tetra hits other blocks, left and right

3.3.1.1. comparing tetra, pile

3.4. Collision4

3.4.1. rotating tetra hits a block

3.4.1.1. comparing tetra, pile

3.5. collision?

3.5.1. Takes tetra, pile, name of function to run

3.5.1.1. Runs function on tetra, compares to pile and world-size

3.5.1.2. Ex. functions: tetra-next, tetra-rotate, etc.

4. Functions

4.1. Function to compare two lists of blocks (blockl-compare)

5. End-game?

6. Game Elements

7. Collisions

7.1. Check whether block row is filled

7.2. Check whether piece is 'cemented' in

7.2.1. aka, whether the next block position is filled?

7.3. Check whether block is in the way, can't move into it

7.3.1. can-move-left?

7.3.2. can-move-right?

7.3.3. can-rotate-left?

7.3.4. can-rotate-right?

7.4. Check whether top block is above screen size

7.5. Check whether block is colliding with left or right side of the screen

7.6. Check whether 'can rotate'

8. Scoring

8.1. Add points when row is cleared (10 points per row?)

8.2. Need to keep track of score - possibly by including it as a number in world?