From 462c1f8bf195a1e30b6c05be7a0ec60ee89d230c Mon Sep 17 00:00:00 2001 From: curly Date: Mon, 15 Aug 2022 15:49:56 -0600 Subject: half working --- src/lib.rs | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index ce1d7ad..99a347e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,9 @@ pub mod input; mod tetris; +mod display; +use crate::tetris::piece; +use std::io::stdin; use crate::input::Input; pub struct Game { @@ -16,14 +19,37 @@ impl Game { } // The actual game loop - pub fn game_loop(&self, input: &Input) {} -} + pub fn game_loop(&self, input: &Input) { + let mut tetris = tetris::Tetris::new(); + let mut piece = piece::Piece::random(); + loop { + piece.r#move(piece::Dir::Down, &tetris); -#[cfg(test)] -mod tests { - #[test] - fn it_works() { - let result = 2 + 2; - assert_eq!(result, 4); + // Check if piece is dead + if piece.is_alive() == false { + piece.apply_to_grid(&mut tetris); + // piece = piece::Piece::random(); + piece = piece::Piece::new(piece::Pieces::Cube); + } + + let grid = tetris.return_grid(); + display::display(&grid, &piece); + + let mut input = String::new(); + + stdin().read_line(&mut input).expect("Could not read line"); + let input = input.get(0..1).expect("Nothing to get"); + match input { + "a" => piece.r#move(piece::Dir::Left, &tetris), + "d" => piece.r#move(piece::Dir::Right, &tetris), + "e" => piece.rotate(piece::Rotate::Right), + "q" => piece.rotate(piece::Rotate::Right), + " " => break, + _ => (), + } + } } } + +#[cfg(test)] +mod tests {} -- cgit v1.2.3