Skip to content

Commit b61a7c3

Browse files
committed
Bumped to 2.0.0, updating several documents
1 parent dbdf937 commit b61a7c3

File tree

9 files changed

+166
-2176
lines changed

9 files changed

+166
-2176
lines changed

BUGS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ Known bugs and issues
22
---------------------
33

44
They're given a 5-star rating based on their importance.
5-
If you ever find any bug on yetris, please message me! Contact info at README.
5+
If you ever find any bug on yetris, please message me!
6+
Contact info at README.
67

78
Current Bugs
89
------------
910

11+
***** No actual High scores implemented! How can I do this?
1012
*** If force the piece down, the falling time doubles.
1113
** When the game ends, the animation leaves some blocks colored.
1214
**** Cannot rotate pieces if it's way's blocked or on the corner.

ChangeLog

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
All the changes are documented on the git history, so here's just the major ones
22

3+
13-02-14 v2.0.0:
4+
* Interface: Menus and Menu Items added. Now you can customize
5+
settings in-game, along with the old way of editing
6+
.ini files. Also, Pause Menu!
7+
* Interface: The Main Menu has two nice Animations, with way
8+
more to come. It's a nice display of animated
9+
ASCII-art with colors.
10+
* Gameplay: Game Profiles added! Now the settings are saved
11+
to each user individually and one can change between
12+
profiles easily.
13+
* Development: Completely reprogrammed the code to C++.
14+
The game's way more flexible now - some features
15+
would be unfeasable in plain old C.
16+
* Bugs: Fixed thousands of bugs introduced by myself when
17+
converting to C++. So, in the end...
18+
* Downgrade: No high score support for now. It'll take
19+
quite some time to make it and save according to
20+
game profiles.
21+
* Downgrade: Scores are quite crippled, along with combos and
22+
back-to-backs. They should be reimplemented soon.
23+
324
26-01-14 v1.7.0:
425
* Gameplay: blocks on the board can be pushed on all 4 directions.
526
options on the config file.

Doxyfile

Lines changed: 4 additions & 1999 deletions
Large diffs are not rendered by default.

INSTALL.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Installing information for the game yetris.
44
This applies to GNU/Linux systems.
55
Microsoft Windows users have a precompiled executable.
66

7-
87
# Installation
98

109
Briefly, the following shell commands should configure,
@@ -20,9 +19,9 @@ directories:
2019

2120
| Directory | What to store |
2221
| ---------------------------- | -------------------------|
23-
| `/usr/local/bin/` | Executable files |
22+
| `/usr/games/` | Executable files |
2423
| `/usr/local/share/man/man6/` | Man page |
25-
| `~/yetris/` | User config and scores |
24+
| `~/.local/share/yetris/` | User config and scores |
2625

2726
# Advanced Installation
2827

@@ -39,9 +38,9 @@ This way, the file hierarchy will be:
3938

4039
| Directory | What to store |
4140
| ------------------------------------ | -------------------------|
42-
| `test/dir/usr/local/bin/` | Executable files |
41+
| `test/dir/usr/games/` | Executable files |
4342
| `test/dir/usr/local/share/man/man6/` | Man page |
44-
| `~/yetris/` | User config and scores |
43+
| `~/.local/share/yetris/` | User config and scores |
4544

4645
You can also specify an installation prefix other than `/usr/local`
4746
by giving `make` the option `PREFIX=CUSTOM_PREFIX`, where
@@ -54,9 +53,9 @@ This way, the file hierarchy will be:
5453

5554
| Directory | What to store |
5655
| -------------------------- | -------------------------|
57-
| `test/dir/bin/` | Executable files |
56+
| `test/dir/` | Executable files |
5857
| `test/dir/share/man/man6/` | Man page |
59-
| `~/yetris/` | User config and scores |
58+
| `~/.local/share/yetris/` | User config and scores |
6059

6160
# Uninstallation
6261

Makefile

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# General Info
3838
PACKAGE = yetris
39-
VERSION = 1.7.0
39+
VERSION = 2.0.0
4040
DATE = $(shell date "+%b%Y")
4141

4242
# Local source code information
@@ -59,9 +59,6 @@ MANDIR = $(MANROOT)/man$(MANNUMBER)
5959
MANFILE = $(PACKAGE).$(MANNUMBER)
6060
MANPAGE = doc/man/$(MANFILE)
6161

62-
SCORE_FILE = yetris.scores
63-
CONFIG_FILE = config.ini
64-
6562
# Build info
6663
EXE = $(PACKAGE)
6764
CDEBUG = -O2
@@ -77,18 +74,21 @@ CXXFILES = $(shell find src -type f -name '*.cpp')
7774
OBJECTS = $(CFILES:.c=.o) \
7875
$(CXXFILES:.cpp=.o)
7976

80-
DEFINES = -DVERSION=\""$(VERSION)"\" \
81-
-DPACKAGE=\""$(PACKAGE)"\" \
82-
-DDATE=\""$(DATE)"\" \
83-
-DSCORE_FILE=\""$(SCORE_FILE)"\" \
84-
-DCONFIG_FILE=\""$(CONFIG_FILE)"\"
77+
DEFINES = -DVERSION=\""$(VERSION)"\" \
78+
-DPACKAGE=\""$(PACKAGE)"\" \
79+
-DDATE=\""$(DATE)"\"
8580

8681
# iniparser stuff
8782
INIDIR = deps/iniparser
8883
INI_CFLAGS = -O2 -fPIC -Wall -ansi -pedantic -Wextra $(PLATFORM)
8984
INI_OBJS = $(INIDIR)/dictionary.o \
9085
$(INIDIR)/iniparser.o
9186

87+
# commander stuff
88+
COMMANDERDIR = deps/commander
89+
COMMANDER_CFLAGS = -O2 -Wall -Wextra $(PLATFORM)
90+
COMMANDER_OBJS = $(COMMANDERDIR)/commander.o
91+
9292
# Distribution tarball
9393
TARNAME = $(PACKAGE)
9494
DISTDIR = $(TARNAME)-$(VERSION)
@@ -136,9 +136,9 @@ purge: uninstall
136136
# Purging configuration files...
137137
$(MUTE)rm -f $(MANDIR)/$(MANFILE)
138138

139-
$(EXE): $(OBJECTS) $(INI_OBJS)
139+
$(EXE): $(OBJECTS) $(INI_OBJS) $(COMMANDER_OBJS)
140140
# Linking...
141-
$(MUTE)$(CXX) $(OBJECTS) $(INI_OBJS) -o bin/$(EXE) $(LIBSDIR) $(LDFLAGS)
141+
$(MUTE)$(CXX) $(OBJECTS) $(INI_OBJS) $(COMMANDER_OBJS) -o bin/$(EXE) $(LIBSDIR) $(LDFLAGS)
142142

143143
src/%.o: src/%.cpp
144144
# Compiling $<...
@@ -164,7 +164,7 @@ run: all
164164

165165
clean:
166166
# Cleaning files...
167-
$(MUTE)rm $(VTAG) -f $(OBJECTS) $(INI_OBJS)
167+
$(MUTE)rm $(VTAG) -f $(OBJECTS) $(INI_OBJS) $(COMMANDER_OBJS)
168168
$(MUTE)rm $(VTAG) -f bin/$(EXE)
169169

170170
doc:
@@ -180,10 +180,17 @@ docclean:
180180
# iniparser stuff
181181

182182
$(INIDIR)/dictionary.o: $(INIDIR)/dictionary.c
183-
# Compiling $@...
183+
# Compiling $<...
184184
$(MUTE)$(CC) $(INI_CFLAGS) $< -c -o $@
185185

186186
$(INIDIR)/iniparser.o: $(INIDIR)/iniparser.c
187-
# Compiling $@...
187+
# Compiling $<...
188188
$(MUTE)$(CC) $(INI_CFLAGS) $< -c -o $@
189189

190+
# commander stuf
191+
192+
$(COMMANDERDIR)/commander.o: $(COMMANDERDIR)/commander.c
193+
# Compiling $<...
194+
$(MUTE)$(CC) $(COMMANDER_CFLAGS) $< -c -o $@
195+
196+

README.md

Lines changed: 76 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,50 @@
1-
# yetris README
1+
# yetris
22

3-
Customizable Tetris(tm) on the console.
3+
Customizable Tetris(tm) with textual interface.
44

5-
![screenshot](http://yetris.alexdantas.net/images/1gameplay.png)
5+
![screenshot](http://yetris.alexdantas.net/images/classic-tetris.png)
66

77
## Introduction
88

9-
yetris is a customizable Tetris(tm) clone for the console.
10-
It aims to follow modern implementations with lots of features
11-
and please both casual players and Tetris(tm) enthusiasts.
9+
yetris is a customizable Tetris(tm) clone for the terminal.
10+
It has some features found on modern adaptations and aims
11+
to please both casual players and Tetris(tm) enthusiasts.
1212

13-
It has full textual interface, with colors and many features:
13+
It has full textual interface, check out these features:
1414

15-
* Customizable by commandline arguments and config file.
16-
* High score.
17-
* Up to 6 next pieces.
18-
* Hold, Combo and back-to-back sequences.
19-
* Scoring system compliant to the (conjectured)
20-
*Tetris(tm) Guideline*.
15+
* _Colors_ and animated interface;
16+
* _Customizable gameplay_, with several game mode
17+
possibilities: ghost piece, hold piece, slide left/right,
18+
_invisible_ and custom initial level and noise (like
19+
the old B-mode).
20+
* _Customizable interface_: up to 7 next pieces, toggle
21+
game borders, center screen, modify game _random algorithm_...
22+
* You can change settings on _in-game menus_ and options;
23+
* _Game profiles_: settings are automatically saved and
24+
restored at startup. _Multple profiles_ supported.
25+
* _Game statistics_: cleared lines, individual and total pieces...
2126

22-
yetris is developed on C and ncurses, running on (most) Linux
23-
terminals.
24-
It currently lacks some expected features but is on active
25-
development.
27+
yetris was originally developed in C, now reprogrammed in C++
28+
with ncurses. It runs on pretty much every terminal around here,
29+
but it's limited to POSIX systems.
2630

27-
Also, the source code is clean and commented, allowing much better
28-
understanding and easing feature-implementation.
31+
## Screenshots
32+
33+
![main-menu](http://yetris.alexdantas.net/images/main-menu-without-borders.png)
34+
35+
![profile-menu](http://yetris.alexdantas.net/images/profile-menu.png)
36+
37+
![single-player-menu](http://yetris.alexdantas.net/images/single-player-menu.png)
38+
39+
![options-menu](http://yetris.alexdantas.net/images/options-menu.png)
40+
41+
![b-mode](http://yetris.alexdantas.net/images/b-mode.png)
42+
43+
![help](http://yetris.alexdantas.net/images/help.png)
44+
45+
![pause-menu](http://yetris.alexdantas.net/images/pause-menu.png)
46+
47+
![game-statistics](http://yetris.alexdantas.net/images/statistics.png)
2948

3049
## Controls
3150

@@ -40,26 +59,26 @@ understanding and easing feature-implementation.
4059
| q | Quits the game at any time |
4160
| r | Restart game |
4261
| h | Show help window |
43-
| F2 | Switch statistics |
44-
| F3 | Show high scores |
45-
| F5 | Refresh game based on config file |
4662

47-
To see more info, run `yetris --help` and `yetris --usage`.
48-
49-
## Installation
63+
## Usage
5064

5165
Briefly, the following shell commands should configure,
52-
build and install this package on the default directories:
66+
build and install this package:
5367

5468
$ make
5569
$ [sudo] make install
70+
$ man yetris
71+
72+
By default yetris is installed at `/usr/games`, with the
73+
settings and scores at `~/.local/share/yetris`. To
74+
see how to change those, go to the file `INSTALL.md`.
5675

5776
If you want to test the game before installing, do:
5877

5978
$ make run
6079

61-
To see how things end up being installed on your system,
62-
see file `INSTALL.md`.
80+
The `Makefile` has lots of toggles and switches, check out
81+
it's first lines.
6382

6483
## Dependencies
6584

@@ -74,27 +93,23 @@ An example on apt-based systems:
7493

7594
$ apt-get install ncurses-dev
7695

77-
## Main Directory Structure
78-
79-
| File | What it is |
80-
| -------- | ---------------------------------------------------------------- |
81-
| README | General game information |
82-
| INSTALL | Installation instructions |
83-
| COPYING | Copyright and warranty info |
84-
| Doxyfile | Doxygen file for generating the source documentation |
85-
| Makefile | Instructions to the `make` program (build and install the game) |
86-
| TODO | Work that needs to be done or ideas for future versions |
87-
| BUGS | Known and solved bugs on the game |
88-
| bin/ | Location of the executable generated after compilation |
89-
| doc/ | The documentation files (explaining the source code) and manpage |
90-
| obj/ | Location of resulting object files after compilation |
91-
| src/ | All of the source code files |
92-
| doc/index.html | Complete source code documentation |
93-
| doc/yetris.6.gz | The manpage |
94-
9596
## Hacking
9697

97-
I'll add more info about development here soon, so stay tuned.
98+
There's another `README.md` on the `src/` directory.
99+
In there I try to explain the source and how could you play
100+
with it.
101+
102+
If you want to contribute,
103+
[there's a lot we could do together](https://github.com/alexdantas/yetris/issues)!
104+
Don't hesitate to contact me, any addition is welcome.
105+
106+
The `BUGS` and `TODO` files are nice points to check out
107+
what we could do.
108+
109+
Also, if you're like me and *love* ncurses games, with textual
110+
interface and stuff, the `src/Inteface/*` files could be of
111+
great use. I tried to make them very flexible so you could
112+
just insert them into a project without too much change.
98113

99114
## Contact
100115

@@ -130,10 +145,23 @@ Huge thanks for all the people that contributed to the project
130145
on the building process. Thanks to him *yetris can be installed
131146
on BSD*!
132147

148+
Also, some miscellaneous credits:
149+
150+
* Yetris' logo uses the *Crawford2* _Figlet Font_.
151+
* Thanks, *Nicolas Devillard*! Your
152+
[_iniParser_](http://ndevilla.free.fr/iniparser/) helped me
153+
a lot!
154+
* I'm also using
155+
[clibs/commander](https://github.com/clibs/commander),
156+
simples CLI argument parser I've ever seen.
157+
* _Emacs_, _Awesome_ and _Arch Linux_, the Ultimate Triforce.
158+
* [The OneUps](https://theoneups.bandcamp.com/) kept me awake
159+
on several nights. Their music is great, specially _Volume 2_!
160+
133161
## License
134162

135163
yetris - Customizable Tetris(tm) on the console.
136-
Copyright (C) 2013 Alexandre Dantas (kure)
164+
Copyright (C) 2013-2014 Alexandre Dantas (kure)
137165

138166
yetris is free software: you can redistribute it and/or modify
139167
it under the terms of the GNU General Public License as published by

TODO

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Things I must do later
2-
======================
2+
----------------------
33

44
* Save and restore game state
55
(binary file with info on all major game data structures)

0 commit comments

Comments
 (0)