aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/generation.rs44
-rw-r--r--src/main.rs2
-rw-r--r--src/patterns.rs2638
-rw-r--r--src/ui.rs53
4 files changed, 2673 insertions, 64 deletions
diff --git a/src/generation.rs b/src/generation.rs
index 249754d..4031c46 100644
--- a/src/generation.rs
+++ b/src/generation.rs
@@ -38,24 +38,29 @@ pub enum Cell {
Dead,
}
-pub fn render_gen(chunk: &Rect, gen: &Gen) {
- for i in 0..chunk.height as usize {
- for j in 0..chunk.width as usize {
- match gen[i][j] {
- // Cell::Alive => print!("😎"),
- // Cell::Alive => print!("🦀"),
- Cell::Alive => print!("{}", "X".color("blue")),
- Cell::Dead => print!("{}", "-".color("red")),
- }
- }
- }
+pub fn render_gen<B: Backend>(f: &mut Frame<B>, chunk: Rect, spans: &Vec<Spans>) {
+ let create_block = |title| {
+ Block::default()
+ .borders(Borders::ALL)
+ .style(Style::default().bg(Color::Black).fg(Color::Red))
+ .title(Span::styled(
+ title,
+ Style::default().add_modifier(Modifier::BOLD),
+ ))
+ .title_alignment(Alignment::Center)
+ };
+ let paragraph = Paragraph::new(spans.clone())
+ .style(Style::default().bg(Color::Black).fg(Color::Blue))
+ .block(create_block(" Conway's Game-Of-Life "))
+ .alignment(Alignment::Center);
+ f.render_widget(paragraph, chunk);
}
pub fn new_gen(chunk: &Rect, app: &mut App) -> Gen {
app.flag_cur = true;
let cells = vec![Cell::Dead, Cell::Dead, Cell::Alive, Cell::Dead, Cell::Alive];
- let cols: u16 = chunk.width - 90;
- let rows: u16 = chunk.height - 2;
+ let cols: u16 = 72;
+ let rows: u16 = 42;
let mut grid: Vec<Vec<Cell>> = Vec::new();
for _ in 0..rows {
let mut row: Vec<Cell> = Vec::new();
@@ -70,19 +75,18 @@ pub fn new_gen(chunk: &Rect, app: &mut App) -> Gen {
pub fn gen_to_spans(gen: &Gen) -> Vec<Spans> {
let mut spans = vec![];
- let alive_cells = vec!["🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "🟫"];
+ let alive_cells = vec!["🟥", "🟦", "🟨", "🟪", "🟧", "🟩", "🟫"];
for i in 0..gen.len() {
let mut txt = String::new();
for j in 0..gen[0].len() {
let rand = thread_rng().gen_range(0..10);
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("🦀"),
- // Cell::Alive => txt.push_str(alive_cells[rand % alive_cells.len()]),
- Cell::Alive => txt.push_str(alive_cells[0]),
- Cell::Dead => txt.push_str("⬛️"),
- // Cell::Alive => txt.push('X'),
- // Cell::Dead => txt.push('-'),
}
}
spans.push(Spans::from(txt));
@@ -186,7 +190,7 @@ pub fn init() -> Result<(), Box<dyn Error>> {
// create app and run it
let tick_rate = Duration::from_millis(250);
let app = App::new();
- let res = run_app(&mut terminal, app, tick_rate);
+ let res = run_app(&mut terminal, app);
// restore terminal
disable_raw_mode()?;
diff --git a/src/main.rs b/src/main.rs
index 7b4544b..cd1b603 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -2,6 +2,8 @@
use std::error::Error;
mod generation;
+mod patterns;
+use patterns::*;
use generation::*;
mod ui;
use ui::*;
diff --git a/src/patterns.rs b/src/patterns.rs
new file mode 100644
index 0000000..8a6f224
--- /dev/null
+++ b/src/patterns.rs
@@ -0,0 +1,2638 @@
+// use std::path::Path;
+// use crate::generation::*;
+// use tui::{
+// backend::{Backend, CrosstermBackend},
+// layout::{Alignment, Constraint, Corner, Direction, Layout, Rect},
+// style::{Color, Modifier, Style},
+// text::{Span, Spans},
+// widgets::{Block, Borders, List, ListItem, ListState, Paragraph},
+// Frame, Terminal,
+// };
+//
+//
+// pub struct StatefulList<T> {
+// pub state: ListState,
+// pub items: Vec<T>,
+// }
+//
+// impl<T> StatefulList<T> {
+// fn with_items(items: Vec<T>) -> StatefulList<T> {
+// StatefulList {
+// state: ListState::default(),
+// items,
+// }
+// }
+//
+// pub fn next(&mut self) {
+// let i = match self.state.selected() {
+// Some(i) => {
+// if i >= self.items.len() - 1 {
+// 0
+// } else {
+// i + 1
+// }
+// }
+// None => 0,
+// };
+// self.state.select(Some(i));
+// }
+//
+// pub fn previous(&mut self) {
+// let i = match self.state.selected() {
+// Some(i) => {
+// if i == 0 {
+// self.items.len() - 1
+// } else {
+// i - 1
+// }
+// }
+// None => 0,
+// };
+// self.state.select(Some(i));
+// }
+//
+// pub fn unselect(&mut self) {
+// self.state.select(None);
+// }
+// }
+//
+// pub struct App<'a> {
+// pub items: StatefulList<(&'a str, &'a Path)>,
+// pub flag_cur: bool,
+// pub layout: Layout,
+// pub cur_gen: Gen,
+// }
+//
+// impl<'a> App<'a> {
+// pub fn new() -> App<'a> {
+// App {
+// items: StatefulList::with_items(PATTERNS),
+// flag_cur: false,
+// layout: Layout::default()
+// .direction(Direction::Horizontal)
+// .constraints([Constraint::Percentage(15), Constraint::Percentage(85)].as_ref()),
+// cur_gen: Gen::new(),
+// }
+// }
+// }
+//
+// static PATTERNS: Vec<(&'static str, &'static Path)> = vec![
+// (
+// "pattern1",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern1.txt")
+// ),
+// (
+// "pattern2",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern2.txt")
+// ),
+//
+// (
+// "pattern3",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern3.txt")
+// ),
+//
+// (
+// "pattern4",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern4.txt")
+// ),
+//
+// (
+// "pattern5",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern5.txt")
+// ),
+//
+// (
+// "pattern6",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern6.txt")
+// ),
+//
+// (
+// "pattern7",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern7.txt")
+// ),
+//
+// (
+// "pattern8",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern8.txt")
+// ),
+//
+// (
+// "pattern9",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern9.txt")
+// ),
+//
+// (
+// "pattern10",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern10.txt")
+// ),
+//
+// (
+// "pattern11",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern11.txt")
+// ),
+//
+// (
+// "pattern12",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern12.txt")
+// ),
+//
+// (
+// "pattern13",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern13.txt")
+// ),
+//
+// (
+// "pattern14",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern14.txt")
+// ),
+//
+// (
+// "pattern15",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern15.txt")
+// ),
+//
+// (
+// "pattern16",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern16.txt")
+// ),
+//
+// (
+// "pattern17",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern17.txt")
+// ),
+//
+// (
+// "pattern18",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern18.txt")
+// ),
+//
+// (
+// "pattern19",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern19.txt")
+// ),
+//
+// (
+// "pattern20",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern20.txt")
+// ),
+//
+// (
+// "pattern21",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern21.txt")
+// ),
+//
+// (
+// "pattern22",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern22.txt")
+// ),
+//
+// (
+// "pattern23",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern23.txt")
+// ),
+//
+// (
+// "pattern24",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern24.txt")
+// ),
+//
+// (
+// "pattern25",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern25.txt")
+// ),
+//
+// (
+// "pattern26",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern26.txt")
+// ),
+//
+// (
+// "pattern27",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern27.txt")
+// ),
+//
+// (
+// "pattern28",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern28.txt")
+// ),
+//
+// (
+// "pattern29",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern29.txt")
+// ),
+//
+// (
+// "pattern30",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern30.txt")
+// ),
+//
+// (
+// "pattern31",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern31.txt")
+// ),
+//
+// (
+// "pattern32",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern32.txt")
+// ),
+//
+// (
+// "pattern33",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern33.txt")
+// ),
+//
+// (
+// "pattern34",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern34.txt")
+// ),
+//
+// (
+// "pattern35",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern35.txt")
+// ),
+//
+// (
+// "pattern36",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern36.txt")
+// ),
+//
+// (
+// "pattern37",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern37.txt")
+// ),
+//
+// (
+// "pattern38",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern38.txt")
+// ),
+//
+// (
+// "pattern39",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern39.txt")
+// ),
+//
+// (
+// "pattern40",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern40.txt")
+// ),
+//
+// (
+// "pattern41",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern41.txt")
+// ),
+//
+// (
+// "pattern42",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern42.txt")
+// ),
+//
+// (
+// "pattern43",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern43.txt")
+// ),
+//
+// (
+// "pattern44",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern44.txt")
+// ),
+//
+// (
+// "pattern45",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern45.txt")
+// ),
+//
+// (
+// "pattern46",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern46.txt")
+// ),
+//
+// (
+// "pattern47",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern47.txt")
+// ),
+//
+// (
+// "pattern48",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern48.txt")
+// ),
+//
+// (
+// "pattern49",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern49.txt")
+// ),
+//
+// (
+// "pattern50",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern50.txt")
+// ),
+//
+// (
+// "pattern51",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern51.txt")
+// ),
+//
+// (
+// "pattern52",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern52.txt")
+// ),
+//
+// (
+// "pattern53",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern53.txt")
+// ),
+//
+// (
+// "pattern54",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern54.txt")
+// ),
+//
+// (
+// "pattern55",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern55.txt")
+// ),
+//
+// (
+// "pattern56",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern56.txt")
+// ),
+//
+// (
+// "pattern57",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern57.txt")
+// ),
+//
+// (
+// "pattern58",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern58.txt")
+// ),
+//
+// (
+// "pattern59",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern59.txt")
+// ),
+//
+// (
+// "pattern60",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern60.txt")
+// ),
+//
+// (
+// "pattern61",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern61.txt")
+// ),
+//
+// (
+// "pattern62",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern62.txt")
+// ),
+//
+// (
+// "pattern63",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern63.txt")
+// ),
+//
+// (
+// "pattern64",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern64.txt")
+// ),
+//
+// (
+// "pattern65",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern65.txt")
+// ),
+//
+// (
+// "pattern66",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern66.txt")
+// ),
+//
+// (
+// "pattern67",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern67.txt")
+// ),
+//
+// (
+// "pattern68",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern68.txt")
+// ),
+//
+// (
+// "pattern69",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern69.txt")
+// ),
+//
+// (
+// "pattern70",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern70.txt")
+// ),
+//
+// (
+// "pattern71",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern71.txt")
+// ),
+//
+// (
+// "pattern72",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern72.txt")
+// ),
+//
+// (
+// "pattern73",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern73.txt")
+// ),
+//
+// (
+// "pattern74",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern74.txt")
+// ),
+//
+// (
+// "pattern75",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern75.txt")
+// ),
+//
+// (
+// "pattern76",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern76.txt")
+// ),
+//
+// (
+// "pattern77",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern77.txt")
+// ),
+//
+// (
+// "pattern78",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern78.txt")
+// ),
+//
+// (
+// "pattern79",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern79.txt")
+// ),
+//
+// (
+// "pattern80",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern80.txt")
+// ),
+//
+// (
+// "pattern81",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern81.txt")
+// ),
+//
+// (
+// "pattern82",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern82.txt")
+// ),
+//
+// (
+// "pattern83",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern83.txt")
+// ),
+//
+// (
+// "pattern84",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern84.txt")
+// ),
+//
+// (
+// "pattern85",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern85.txt")
+// ),
+//
+// (
+// "pattern86",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern86.txt")
+// ),
+//
+// (
+// "pattern87",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern87.txt")
+// ),
+//
+// (
+// "pattern88",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern88.txt")
+// ),
+//
+// (
+// "pattern89",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern89.txt")
+// ),
+//
+// (
+// "pattern90",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern90.txt")
+// ),
+//
+// (
+// "pattern91",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern91.txt")
+// ),
+//
+// (
+// "pattern92",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern92.txt")
+// ),
+//
+// (
+// "pattern93",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern93.txt")
+// ),
+//
+// (
+// "pattern94",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern94.txt")
+// ),
+//
+// (
+// "pattern95",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern95.txt")
+// ),
+//
+// (
+// "pattern96",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern96.txt")
+// ),
+//
+// (
+// "pattern97",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern97.txt")
+// ),
+//
+// (
+// "pattern98",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern98.txt")
+// ),
+//
+// (
+// "pattern99",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern99.txt")
+// ),
+//
+// (
+// "pattern100",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern100.txt")
+// ),
+//
+// (
+// "pattern101",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern101.txt")
+// ),
+//
+// (
+// "pattern102",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern102.txt")
+// ),
+//
+// (
+// "pattern103",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern103.txt")
+// ),
+//
+// (
+// "pattern104",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern104.txt")
+// ),
+//
+// (
+// "pattern105",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern105.txt")
+// ),
+//
+// (
+// "pattern106",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern106.txt")
+// ),
+//
+// (
+// "pattern107",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern107.txt")
+// ),
+//
+// (
+// "pattern108",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern108.txt")
+// ),
+//
+// (
+// "pattern109",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern109.txt")
+// ),
+//
+// (
+// "pattern110",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern110.txt")
+// ),
+//
+// (
+// "pattern111",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern111.txt")
+// ),
+//
+// (
+// "pattern112",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern112.txt")
+// ),
+//
+// (
+// "pattern113",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern113.txt")
+// ),
+//
+// (
+// "pattern114",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern114.txt")
+// ),
+//
+// (
+// "pattern115",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern115.txt")
+// ),
+//
+// (
+// "pattern116",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern116.txt")
+// ),
+//
+// (
+// "pattern117",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern117.txt")
+// ),
+//
+// (
+// "pattern118",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern118.txt")
+// ),
+//
+// (
+// "pattern119",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern119.txt")
+// ),
+//
+// (
+// "pattern120",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern120.txt")
+// ),
+//
+// (
+// "pattern121",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern121.txt")
+// ),
+//
+// (
+// "pattern122",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern122.txt")
+// ),
+//
+// (
+// "pattern123",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern123.txt")
+// ),
+//
+// (
+// "pattern124",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern124.txt")
+// ),
+//
+// (
+// "pattern125",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern125.txt")
+// ),
+//
+// (
+// "pattern126",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern126.txt")
+// ),
+//
+// (
+// "pattern127",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern127.txt")
+// ),
+//
+// (
+// "pattern128",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern128.txt")
+// ),
+//
+// (
+// "pattern129",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern129.txt")
+// ),
+//
+// (
+// "pattern130",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern130.txt")
+// ),
+//
+// (
+// "pattern131",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern131.txt")
+// ),
+//
+// (
+// "pattern132",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern132.txt")
+// ),
+//
+// (
+// "pattern133",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern133.txt")
+// ),
+//
+// (
+// "pattern134",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern134.txt")
+// ),
+//
+// (
+// "pattern135",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern135.txt")
+// ),
+//
+// (
+// "pattern136",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern136.txt")
+// ),
+//
+// (
+// "pattern137",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern137.txt")
+// ),
+//
+// (
+// "pattern138",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern138.txt")
+// ),
+//
+// (
+// "pattern139",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern139.txt")
+// ),
+//
+// (
+// "pattern140",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern140.txt")
+// ),
+//
+// (
+// "pattern141",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern141.txt")
+// ),
+//
+// (
+// "pattern142",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern142.txt")
+// ),
+//
+// (
+// "pattern143",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern143.txt")
+// ),
+//
+// (
+// "pattern144",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern144.txt")
+// ),
+//
+// (
+// "pattern145",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern145.txt")
+// ),
+//
+// (
+// "pattern146",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern146.txt")
+// ),
+//
+// (
+// "pattern147",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern147.txt")
+// ),
+//
+// (
+// "pattern148",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern148.txt")
+// ),
+//
+// (
+// "pattern149",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern149.txt")
+// ),
+//
+// (
+// "pattern150",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern150.txt")
+// ),
+//
+// (
+// "pattern151",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern151.txt")
+// ),
+//
+// (
+// "pattern152",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern152.txt")
+// ),
+//
+// (
+// "pattern153",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern153.txt")
+// ),
+//
+// (
+// "pattern154",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern154.txt")
+// ),
+//
+// (
+// "pattern155",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern155.txt")
+// ),
+//
+// (
+// "pattern156",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern156.txt")
+// ),
+//
+// (
+// "pattern157",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern157.txt")
+// ),
+//
+// (
+// "pattern158",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern158.txt")
+// ),
+//
+// (
+// "pattern159",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern159.txt")
+// ),
+//
+// (
+// "pattern160",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern160.txt")
+// ),
+//
+// (
+// "pattern161",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern161.txt")
+// ),
+//
+// (
+// "pattern162",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern162.txt")
+// ),
+//
+// (
+// "pattern163",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern163.txt")
+// ),
+//
+// (
+// "pattern164",
+// Path::new("/home/pengu/test/rust-dev/gof-rs/presets/patterns/pattern164.txt")
+// ),
+//
+// (
<