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(()) }