Skip to content
Permalink
Browse files

Updated meta files (such as `README.md` and `TODO`)

  • Loading branch information
alexdantas committed Aug 13, 2014
1 parent 3c12f76 commit 5d91ac00595b6d315a34ae4a65c56377002929b4
Showing with 61 additions and 74 deletions.
  1. +1 −1 AUTHORS
  2. +1 −2 BUGS
  3. +1 −0 INSTALL.md
  4. +9 −8 Makefile
  5. +49 −63 TODO
@@ -1,4 +1,4 @@
Alexandre Dantas <alex.dantas92@gmail.com>
Alexandre Dantas <eu@alexdantas.net>
* Main upstream and current maintainer.

Christopher Meng <cickumqt@gmail.com>
3 BUGS
@@ -1,5 +1,4 @@
BUGS
====
# BUGS

There are no long-term bugs.
For a list of currently unsolved issues, go to:
@@ -97,4 +97,5 @@ If you installed it with a custom prefix, do the same:
$ make uninstall PREFIX=other/dir

[distro]: http://nsnake.alexdantas.net/#installation
[issues]: https://github.com/alexdantas/nSnake/issues

@@ -1,5 +1,5 @@
# nsnake Makefile
# (2013) Alexandre Dantas <eu@alexdantas.net>
# (2013-2014) Alexandre Dantas <eu@alexdantas.net>
#
# This is a rather complex Makefile, sorry about that.
# It supports the following targets:
@@ -54,11 +54,11 @@ DESKTOPDIR = $(DATAROOTDIR)/applications
LEVELDIR = $(DATAROOTDIR)/games/nsnake/levels

# Things for the man page
MANROOT = $(DATAROOTDIR)/man
MANDIR = $(MANROOT)/man$(MANNUMBER)
MANNUMBER = 6
MANFILE = $(PACKAGE).$(MANNUMBER)
MANPAGE = doc/man/$(MANFILE)
MANROOT = $(DATAROOTDIR)/man
MANDIR = $(MANROOT)/man$(MANNUMBER)
MANNUMBER = 6
MANFILE = $(PACKAGE).$(MANNUMBER)
MANPAGE = doc/man/$(MANFILE)

# Build info
EXE = $(PACKAGE)
@@ -80,9 +80,9 @@ DEFINES = -DVERSION=\""$(VERSION)"\" \
-DSYSTEM_LEVEL_DIR=\""$(LEVELDIR)"\"

# commander stuff
COMMANDERDIR = deps/commander
COMMANDERDIR = deps/commander
COMMANDER_CFLAGS = -O2 -Wall -Wextra $(CFLAGS_PLATFORM)
COMMANDER_OBJS = $(COMMANDERDIR)/commander.o
COMMANDER_OBJS = $(COMMANDERDIR)/commander.o

# Distribution tarball
TARNAME = $(PACKAGE)
@@ -205,3 +205,4 @@ docclean:
$(COMMANDERDIR)/commander.o: $(COMMANDERDIR)/commander.c
# Compiling $<...
$(MUTE)$(CC) $(COMMANDER_CFLAGS) $< -c -o $@

112 TODO
@@ -1,91 +1,77 @@
This is a long-term list of things that might be nice to have on the game.
# TODO

This is a long-term list of things that might be nice
to have on the game. They're grouped by how much
difficult would be to actually implement.

If you want to add a suggestion, by all means create an
issue here:

If you want to add a suggestion, by all means create an issue here:
https://github.com/alexdantas/nsnake/issues?state=open

--------------------------------------------------------------------------------
---

[easy]
When the snake eats a frut, modify its body so that the place where
the fruit was becomes big.. Just like when a snake eats it gets stuffed
## Easy

[medium]
Attribute that changes the snake color
Like -c [0 ~ 4], changes colors from 0 to 4
Change more colors?
Key 'c' changes the color in-game
- [ ] When the snake eats a frut, modify its body so that the place
where the fruit was becomes big. Just like when a snake eats
it gets stuffed.

[simple]
Make the game speed changing more balanced
Make the fruit give score equal to game level
- [ ] Make the game speed changing more balanced

[medium]
Make attribute that changes the game level size?
Follow the other 'nsnake' path and handle the SIGWINCH signal?
This way, whenever someone resize the window, i could do whatever
i want, like resize the game window or move the screen...
- [X] Make the fruit give score relative to game level

[hard]
Change level to be a big char grid.
Each cell will be able to be EMPTY, FRUIT, WALL or SNAKE.
When checking collision, simply watch if snake's head is in a WALL cell
Same for when snake's head is in a FRUIT cell
And same when creating a fruit! Instead of checking each and every snake
position, check only if the grid is a SNAKE. (the only exception would
be the snake head. how can i check collision with it if it's a SNAKE cell?)
This will make possible to create LEVELS for the game!
Just read a text file with real grids on it, parse and voila!
I wonder if this would be the game be complicated...
Need to check other game's examples.
- [X] Leave nsnake with the default background color of the user
terminal, instead of COLOR_BLACK. Since use_default_colors is a
ncurses extension, the man page recommends conditioning it to
NCURSES_VERSION. What does that mean?

[simple]
Insert header when writing to score file so i can check if it is corrupted.
Whenever i read from the score file, check if the header is ok.
Maybe some special number like 666 or a string like "nSnAkE_sCoReFiLe"
What will i do if i find a corrupted score file?
Erase the score? Rewrite it? I need to warn the player, right?
- [ ] Deal with signals, in case someone does Ctrl+C.
Exit from ncurses and free() the snake memory :D

[hard as hell]
Change the way highscores exist.
Maybe implement a highscore screen, with the names of the players.
Assume default name as getenv("USER") and such.
- [X] Create function that will verify if the user pressed something
(kbhit()) If the user did, go to the nonblocking input functions
(saves memory)

- [ ] When clearing highscores, show if it worked or not (due to
several reasons) Show the hscore directory?

[simple]
Leave nsnake with the default background color of the user terminal, instead of COLOR_BLACK.
Since use_default_colors is a ncurses extension, the man page recommends
conditioning it to NCURSES_VERSION. What does that mean?
## Medium

[simple]
Deal with signals, in case someone does Ctrl+C.
Exit from ncurses and free() the snake memory :D
- [ ] CLI argument that changes the snake color Like -c [0 ~ 4],
changes colors from 0 to 4 Change more colors?

- [X] Use textual high score file (avoid binary hell)

[simple]
Create function that will verify if the user pressed something (kbhit())
If the user did, go to the nonblocking input functions (saves memory)
- [ ] Key 'c' changes the color in-game

[simple]
When clearing highscores, show if it worked or not (due to several reasons)
Show the hscore directory?
- [ ] Make CLI argument that changes the game level size?

- [ ] Follow the other `nsnake` path and handle the SIGWINCH signal?
This way, whenever someone resize the window, i could do
whatever i want, like resize the game window or move the
screen...

- [X] Increase or decrease movement speed according to the game

<random_ideas>-------------------------------------------
## Hard

* Campaign Mode? Change levels? > way ahead
- [ ] Change the way highscores exist. Maybe implement a highscore
screen, with the names of the players. Assume default name as
getenv("USER") and such.

*** Increase or decrease movement speed according to the game
- [ ] Campaign Mode?

* Possibility to change the controls (add config option - add controls.bin file)
- [X] Change levels

**** Include libncurses with the source?
- [X] Possibility to change the controls (add config option - add
controls configuration file)

***** True Highscore Support: For each mode, its own Highscore
- [X] True Highscore Support: For each mode, its own Highscore

*** Windows support: PDCurses!
## Dante Must Die Hard

</random_ideas>------------------------------------------
- [ ] Windows support: PDCurses!

IMPLEMENT IT ON C++
- [X] Rewrite from scratch on C++

0 comments on commit 5d91ac0

Please sign in to comment.
You can’t perform that action at this time.