roguelike-rs/src/main.rs

48 lines
1.4 KiB
Rust

use std::{
io::{self, Stdout, Write},
time::Duration,
};
use crossterm::style::style;
pub use crossterm::{
cursor,
event::{self, Event, KeyCode, KeyEvent},
execute, queue, style,
terminal::{self, ClearType},
Command, Result,
};
const dungeon: [[i32; 17]; 5] = [
[0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,],
[1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,],
[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,],
[0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,],
];
fn main() -> Result<()> {
let mut stdout = io::stdout();
execute!(stdout, terminal::EnterAlternateScreen)?;
terminal::enable_raw_mode();
execute!(stdout, cursor::MoveTo(0, 0));
for row in (0..dungeon.len()) {
for cell in dungeon[row] {
if (row % 2 == 0) {
execute!(stdout, style::SetForegroundColor(style::Color::Red));
} else {
execute!(stdout, style::SetForegroundColor(style::Color::Magenta));
}
if cell == 1 {
execute!(stdout, style::Print('#'));
} else {
execute!(stdout, style::Print(' '));
}
}
execute!(stdout, cursor::MoveToNextLine(1));
}
event::read()?;
terminal::disable_raw_mode();
execute!(stdout, terminal::LeaveAlternateScreen)?;
Ok(())
}