Update README.md
This commit is contained in:
@@ -1,6 +1,14 @@
|
|||||||
# Snake in rust
|
# Snake in rust
|
||||||
|
|
||||||
Trying to make a snake game in rust using ncurses.
|
The game is playable
|
||||||
It is nowhere near complete.
|
|
||||||
This is for me to learn rust better.
|
run with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo run
|
||||||
|
```
|
||||||
|
|
||||||
|
- To fix bugs
|
||||||
|
- To Implement the highscore system
|
||||||
|
|
||||||
Learning from [ncurses](https://docs.rs/ncurses)
|
Learning from [ncurses](https://docs.rs/ncurses)
|
||||||
|
|||||||
+5
-5
@@ -69,8 +69,8 @@ impl Cell {
|
|||||||
pub fn random(lines: i32, cols: i32) -> Cell {
|
pub fn random(lines: i32, cols: i32) -> Cell {
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
Cell::new(
|
Cell::new(
|
||||||
rng.gen_range(0..lines),
|
rng.gen_range(1..lines),
|
||||||
rng.gen_range(0..cols),
|
rng.gen_range(1..cols),
|
||||||
CellType::Food,
|
CellType::Food,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -127,8 +127,8 @@ impl Board {
|
|||||||
let (snake_line, snake_col): (i32, i32) = snake.posyx();
|
let (snake_line, snake_col): (i32, i32) = snake.posyx();
|
||||||
if (snake_line >= self.maxlines)
|
if (snake_line >= self.maxlines)
|
||||||
|| (snake_col >= self.maxcols)
|
|| (snake_col >= self.maxcols)
|
||||||
|| (snake_line <= 0)
|
|| (snake_line < 0)
|
||||||
|| (snake_col <= 0)
|
|| (snake_col < 0)
|
||||||
{
|
{
|
||||||
self.gamestate = GameState::Failed(FailState::Wall);
|
self.gamestate = GameState::Failed(FailState::Wall);
|
||||||
return true;
|
return true;
|
||||||
@@ -175,7 +175,7 @@ pub struct Snake {
|
|||||||
head: Cell,
|
head: Cell,
|
||||||
body: LinkedList<Cell>,
|
body: LinkedList<Cell>,
|
||||||
direction: Direction,
|
direction: Direction,
|
||||||
pub grow: bool,
|
grow: bool,
|
||||||
}
|
}
|
||||||
impl Snake {
|
impl Snake {
|
||||||
pub fn new(head: Cell) -> Snake {
|
pub fn new(head: Cell) -> Snake {
|
||||||
|
|||||||
@@ -52,18 +52,15 @@ pub fn log(snake: &Snake, board: &Board) {
|
|||||||
mvwaddstr(stdscr(), 0, 0, &format!("snake:head: {} {} ", shl, shc));
|
mvwaddstr(stdscr(), 0, 0, &format!("snake:head: {} {} ", shl, shc));
|
||||||
mvwaddstr(stdscr(), 1, 0, &format!("board:food: {} {} ", bfl, bfc));
|
mvwaddstr(stdscr(), 1, 0, &format!("board:food: {} {} ", bfl, bfc));
|
||||||
wmove(stdscr(), 2, 0);
|
wmove(stdscr(), 2, 0);
|
||||||
for snake_cell in snake.iter() {
|
// for snake_cell in snake.iter() {
|
||||||
let (scl, scc): (i32, i32) = snake_cell.posyx();
|
// let (scl, scc): (i32, i32) = snake_cell.posyx();
|
||||||
waddstr(stdscr(), &format!("cell: {} {} ", scl, scc));
|
// waddstr(stdscr(), &format!("cell: {} {} ", scl, scc));
|
||||||
}
|
// }
|
||||||
// mvwaddstr(
|
// mvwaddstr(
|
||||||
// stdscr(),
|
// stdscr(),
|
||||||
// 2,
|
// 2,
|
||||||
// 0,
|
// 0,
|
||||||
// &format!("snake_size {}", snake.iter().size_hint().0),
|
// &format!("snake_size {}", snake.iter().size_hint().0),
|
||||||
// );
|
// );
|
||||||
if snake.grow {
|
|
||||||
mvwaddstr(stdscr(), 3, 0, &format!("snake:grew"));
|
|
||||||
}
|
|
||||||
wrefresh(stdscr());
|
wrefresh(stdscr());
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -38,7 +38,11 @@ pub fn start() {
|
|||||||
match menu::pause_menu_control() {
|
match menu::pause_menu_control() {
|
||||||
//112 is keycode for 'p'
|
//112 is keycode for 'p'
|
||||||
0 => (), //resume
|
0 => (), //resume
|
||||||
1 => (), //restart
|
1 => {
|
||||||
|
snake =
|
||||||
|
Snake::new(Cell::new(mlines / 2, mcols / 2, backend::CellType::Snake)); //Initialise snake in the middle of the screen
|
||||||
|
board = Board::new(mlines - vmargin * 2, mcols - hmargin * 2);
|
||||||
|
} //restart
|
||||||
2 => break, //exit
|
2 => break, //exit
|
||||||
_ => (), //other charachters just in case
|
_ => (), //other charachters just in case
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
pub fn show() {
|
||||||
|
// highscore_file = backend::load(
|
||||||
|
}
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
extern crate ncurses;
|
extern crate ncurses;
|
||||||
mod game;
|
mod game;
|
||||||
|
mod highscore;
|
||||||
mod menu;
|
mod menu;
|
||||||
// use game::{Cell, Snake};
|
// use game::{Cell, Snake};
|
||||||
// use ncurses::*;
|
// use ncurses::*;
|
||||||
@@ -15,7 +16,7 @@ fn main() {
|
|||||||
loop {
|
loop {
|
||||||
match menu::main_menu_control() {
|
match menu::main_menu_control() {
|
||||||
0 => game::start(),
|
0 => game::start(),
|
||||||
1 => (),
|
1 => highscore::show(),
|
||||||
_ => break,
|
_ => break,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user