summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2022-06-01 22:22:51 +0800
committerFrederick Yin <fkfd@fkfd.me>2022-06-01 22:22:51 +0800
commit286012bcbca33d471f4f82f9a14bbe70ec55b64b (patch)
tree650b19249e9644a8a6cb698b0befb650b5f4bb25
parentd3058d7617e134d0ff645de1fc01ffe94d7dcc79 (diff)
Add README
-rw-r--r--README70
1 files changed, 70 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..4629ec5
--- /dev/null
+++ b/README
@@ -0,0 +1,70 @@
+================================ SIRTET ================================
+
+SIRTET is a game. Conceptually it is like Tetris, except:
+- Pieces do not fall from the top; you manually place them
+- You have multiple pieces to choose from
+- Pieces cannot be rotated
+- Map size is arbitrary
+- There is no time limit
+- More shapes are available
+- Rows *and* columns are cleared when full
+
+--------------------------------- RULES --------------------------------
+
+By default, you are given an 8x8 blank map and 3 pieces with randomly
+chosen shapes. You have to place each of the pieces, in whichever order,
+onto the map. Once it is placed, it occupies several blocks, which
+cannot overlap with blocks that are already taken. For every piece you
+successfully place, you are awarded a number of points equal to that of
+newly occupied blocks.
+
+If a row and column becomes full, i.e. all occupied, it is cleared. You
+are awarded a number of points equal to that of blocks cleared, and you
+can place pieces on the row or column again.
+
+Once you deplete your pieces, you are given 3 more. If at any point you
+find it impossible to place any, the game is over.
+
+------------------------------- BUILDING -------------------------------
+
+To build SIRTET, you need gcc (or any other compatible C compiler, I can't
+stop you) and ncurses. All you need to do is:
+
+$ gcc *.c -lncurses -o sirtet
+
+Or equivalent thereof, with your compiler of choice. For the lazy (such
+as myself), I wrote a Makefile that compiles and runs SIRTET in one run:
+
+$ make
+
+(Note: this compiles SIRTET with debug symbols.)
+
+------------------------------- RUNNING --------------------------------
+
+For the default, just run
+
+$ ./sirtet
+
+This will bring you to a ncurses UI. Consult section "KEYS" for how to
+play.
+
+To override the default map size and number of pieces, here are three
+optional arguments:
+
+$ ./sirtet -h [height] -w [width] -p [pieces]
+
+The minimum value is 4 for height and width, and 1 for piece. Default
+values are 8, 8, and 3.
+
+---------------------------------- UI ----------------------------------
+
+Once you enter the game, you will be presented a map and several pieces
+below it. There will always be a "hovering" piece that is to be placed.
+You can switch it using [ or ] keys. You can also move it using arrow
+keys, wasd, or vi-style hjkl keybindings. If it is red, it means you may
+not place the piece here as it overlaps with occupied blocks. If it is
+green, you may press Enter to place it. As a piece is placed, the map
+updates, and the next piece appears in the top left corner.
+
+At any point, you may press q to quit the game. There will be no
+confirmation.