This commit is contained in:
deadvey 2024-12-22 19:13:31 +00:00
parent 351e795f29
commit 5d5dacc845
2 changed files with 23 additions and 25 deletions

View File

@ -1,8 +1,8 @@
use rand::Rng;
use std::io::{stdin,stdout,Write};
use console::Term;
//use termsize::get;
fn output_levels(starting_level: u64, ending_level: u64, character_x_coord: u8, character_icon: char, levels: &Vec<Vec<u8>>) {
fn output_levels(starting_level: u64, ending_level: u64, character_x_coord: u16, character_icon: char, levels: &Vec<Vec<u8>>) {
print!("{}[2J", 27 as char);
for i in starting_level..ending_level {
for j in 0..levels[i as usize].len() {
@ -17,7 +17,7 @@ fn output_levels(starting_level: u64, ending_level: u64, character_x_coord: u8,
println!(" {}",i);
}
}
fn generate_level(level_to_generate: u64, difficulty: u8, left_wall: &mut i8, right_wall: &mut i8, screen_width: u8, levels: &mut Vec<Vec<u8>>) {
fn generate_level(level_to_generate: u64, difficulty: u8, left_wall: &mut i8, right_wall: &mut i8, screen_width: u16, levels: &mut Vec<Vec<u8>>) {
let mut new_level: Vec<u8> = Vec::new();
let left_wall_change = rand::thread_rng().gen_range(-1..2);
@ -33,7 +33,6 @@ fn generate_level(level_to_generate: u64, difficulty: u8, left_wall: &mut i8, ri
}
//println!("lw: {}, rw: {}", left_wall, right_wall);
if (*right_wall-*left_wall).abs() < 8 {
println!("VERY CLOSE");
*left_wall-=2;
*right_wall+=2;
}
@ -46,7 +45,7 @@ fn generate_level(level_to_generate: u64, difficulty: u8, left_wall: &mut i8, ri
}
for i in *left_wall+1..*right_wall-1 {
let mut rng = rand::thread_rng();
let rng = rand::thread_rng();
let object: u8 = rand::thread_rng().gen_range(3..difficulty);
new_level[i as usize] = object;
}
@ -75,20 +74,7 @@ fn generate_level(level_to_generate: u64, difficulty: u8, left_wall: &mut i8, ri
levels.push(new_level);
}
fn input() -> String{
let mut s=String::new();
let _=stdout().flush();
stdin().read_line(&mut s).expect("Did not enter a correct string");
if let Some('\n')=s.chars().next_back() {
s.pop();
}
if let Some('\r')=s.chars().next_back() {
s.pop();
}
return s;
}
fn check_if_alive(levels: &Vec<Vec<u8>>, level: usize, x_coord: usize) -> bool {
println!("{}",levels[level][x_coord]);
if levels[level][x_coord] == 0 || levels[level][x_coord] == 1 || levels[level][x_coord] == 2 || levels[level][x_coord] == 3 {
println!("GAME OVER");
return false;
@ -98,17 +84,20 @@ fn check_if_alive(levels: &Vec<Vec<u8>>, level: usize, x_coord: usize) -> bool {
}
}
fn main() {
pub fn main() {
let mut levels: Vec<Vec<u8>> = Vec::new();
let screen_height: u8 = 70;
let screen_width: u8 = 100;
let difficulty: u8 = 10;
let (screen_width, screen_height) = termion::terminal_size().unwrap();
println!("width: {}, height: {}",screen_width, screen_height);
//let screen_height: u8 = 70;
//let screen_width: u8 = 100;
let difficulty: u8 = 15;
let stdout = Term::buffered_stdout();
let mut current_level: u64 = 0;
let character_icon: char = 'µ';
let mut x_coord: u8 = (screen_width as f32/ 2.0) as u8; // Distance from left wall
let mut x_coord: u16 = (screen_width as f32/ 2.0) as u16; // Distance from left wall
let mut left_wall: i8 = (screen_width as f32/ 4.0) as i8;
let mut right_wall: i8 = ((screen_width as f32 * 3.0)/ 4.0) as i8;
let mut alive: bool = true;
@ -124,7 +113,7 @@ fn main() {
'd' => if x_coord < screen_width-1 { x_coord += 1 },
'a' => if x_coord > 1 { x_coord -= 1 },
'q' => break 'game_loop,
_ => (),
_ => continue 'game_loop,
}
}
current_level+=1;

9
falling.toml Normal file
View File

@ -0,0 +1,9 @@
[package]
name = "falling"
version = "0.1.0"
edition = "2024"
[dependencies]
rand = "0.8.5"
console = "0.15.10"
termion = "4.0.3"