aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets/widgets/tetrix/doc/tetrix.rst
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/widgets/tetrix/doc/tetrix.rst')
-rw-r--r--examples/widgets/widgets/tetrix/doc/tetrix.rst38
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/widgets/widgets/tetrix/doc/tetrix.rst b/examples/widgets/widgets/tetrix/doc/tetrix.rst
new file mode 100644
index 000000000..0749de9de
--- /dev/null
+++ b/examples/widgets/widgets/tetrix/doc/tetrix.rst
@@ -0,0 +1,38 @@
+Tetrix
+======
+
+The Tetrix example is a Qt version of the classic Tetrix game.
+
+.. image:: tetrix-screenshot.png
+ :width: 400
+ :alt: Tetrix main window
+
+The object of the game is to stack pieces dropped from the top of the playing
+area so that they fill entire rows at the bottom of the playing area.
+
+When a row is filled, all the blocks on that row are removed, the player earns
+a number of points, and the pieces above are moved down to occupy that row. If
+more than one row is filled, the blocks on each row are removed, and the player
+earns extra points.
+
+The **Left** cursor key moves the current piece one space to the left, the
+**Right** cursor key moves it one space to the right, the **Up** cursor key
+rotates the piece counter-clockwise by 90 degrees, and the **Down** cursor key
+rotates the piece clockwise by 90 degrees.
+
+To avoid waiting for a piece to fall to the bottom of the board, press **D** to
+immediately move the piece down by one row, or press the **Space** key to drop
+it as close to the bottom of the board as possible.
+
+This example shows how a simple game can be created using only three classes:
+
+* The ``TetrixWindow`` class is used to display the player's score, number of
+ lives, and information about the next piece to appear.
+* The ``TetrixBoard`` class contains the game logic, handles keyboard input, and
+ displays the pieces on the playing area.
+* The ``TetrixPiece`` class contains information about each piece.
+
+In this approach, the ``TetrixBoard`` class is the most complex class, since it
+handles the game logic and rendering. One benefit of this is that the
+``TetrixWindow`` and ``TetrixPiece`` classes are very simple and contain only a
+minimum of code.