diff options
| author | omagdy <omar.professional8777@gmail.com> | 2024-12-04 19:26:32 +0200 |
|---|---|---|
| committer | omagdy <omar.professional8777@gmail.com> | 2024-12-04 19:26:32 +0200 |
| commit | 50359080f71984d8cae04660a6ab90e5f2272416 (patch) | |
| tree | aced1018b85a4569c8b3b47f6c97aadeb34ae790 /src/generation.rs | |
| parent | 695c004357a3d8a225bf16d2ce8f0ff972006258 (diff) | |
| download | gof-rs-50359080f71984d8cae04660a6ab90e5f2272416.tar.xz gof-rs-50359080f71984d8cae04660a6ab90e5f2272416.zip | |
refactor: Use ratatui instead of deprecated tui library and also fix weird background of the playground it now matches your background of the terminal
Diffstat (limited to 'src/generation.rs')
| -rwxr-xr-x | src/generation.rs | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/generation.rs b/src/generation.rs index 12a06b3..56a4944 100755 --- a/src/generation.rs +++ b/src/generation.rs @@ -5,15 +5,15 @@ use crossterm::{ terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, }; use rand::{thread_rng, Rng}; -use std::{error::Error, io}; -use tui::{ - backend::{Backend, CrosstermBackend}, +use ratatui::{ + backend::CrosstermBackend, layout::{Alignment, Rect}, style::{Color, Modifier, Style}, - text::{Span, Spans}, + text::{Line, Span}, widgets::{Block, Borders, Paragraph}, Frame, Terminal, }; +use std::{error::Error, io}; pub type Gen = Vec<Vec<Cell>>; @@ -23,11 +23,11 @@ pub enum Cell { Dead, } -pub fn render_gen<B: Backend>(f: &mut Frame<B>, chunk: Rect, spans: &Vec<Spans>) { +pub fn render_gen(f: &mut Frame, chunk: Rect, spans: &Vec<Line>) { let create_block = |title| { Block::default() .borders(Borders::ALL) - .style(Style::default().bg(Color::Black).fg(Color::Red)) + .style(Style::default().bg(Color::Reset).fg(Color::Red)) .title(Span::styled( title, Style::default().add_modifier(Modifier::BOLD), @@ -35,7 +35,7 @@ pub fn render_gen<B: Backend>(f: &mut Frame<B>, chunk: Rect, spans: &Vec<Spans>) .title_alignment(Alignment::Center) }; let paragraph = Paragraph::new(spans.clone()) - .style(Style::default().bg(Color::Black).fg(Color::Blue)) + .style(Style::default().bg(Color::Reset).fg(Color::Blue)) .block(create_block(" Conway's Game-Of-Life ")) .alignment(Alignment::Center); f.render_widget(paragraph, chunk); @@ -58,22 +58,17 @@ pub fn new_gen(app: &mut App) -> Gen { grid } -pub fn gen_to_spans(gen: &Gen) -> Vec<Spans> { +pub fn gen_to_spans(gen: &Gen) -> Vec<Line> { let mut spans = vec![]; - // let alive_cells = vec!["🟥", "🟦", "🟨", "🟪", "🟧", "🟩", "🟫"]; for i in 0..gen.len() { let mut txt = String::new(); for j in 0..gen[0].len() { match gen[i][j] { - // Cell::Alive => txt.push_str(alive_cells[rand % alive_cells.len()]), Cell::Alive => txt.push_str("⬜"), - // Cell::Dead => txt.push_str("⬛️"), Cell::Dead => txt.push_str(" "), - // Cell::Alive => print!("😎"), - // Cell::Alive => txt.push_str("🦀"), } } - spans.push(Spans::from(txt)); + spans.push(Line::from(txt)); } spans } |
