eeaa8a2675
Removed a lot of unused and commented code
2.5 KiB
2.5 KiB
Snake in rust using ncurses crate
The game is playable
run with
cargo run
Keybinds
hjkl or arrow keys for movement
esc or p to pause
Screenshot
Click the image for asciinema
Need unicode support in terminal to print the snake
The unicode characters used are:
- 0x0298 ʘ
- 0x2550 ═
- 0x2551 ║
- 0x2554 ╔
- 0x2557 ╗
- 0x255a ╚
- 0x255d ╝
Todo 🚧
- Add a way to change the snake speed
- Make a ui to switch the snake speed
- Interal implementation of the snake speed
- Implement Highscore System
- Make the ui
- Internal Implementation
- Use unicode charachters to draw the snake
Bugs 🐛
Snake going through the wallsFood spawning in the wallsBoxdraw characters not rendering properly- Remove all the logging in the ui
- Pausing delayed if esc is pressed but not if p is pressed.
- The game flickers a lot after sometime (probably due to the constant redrawing of the whole board every tick)
Maybe in the future
- Autoplay the game using a simple pathfinding algorithm (to show on r/unixporn of course 🤡)
Notes
A few notes about the game and how I should improve the game
A few notes about time complexity and redrawing with ncurses
The complexity of the program is O(n) every tick (time which changes relative to the speed)
However the place, I can improve is the redrawing of the game
At the time of writing the in commit f9be68e the game still redraws the total board and the total snake every tick.
I think this can be improved by only drawing the parts of the snake and the board when needed
