aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gameloop.rs70
-rw-r--r--src/generation.rs51
-rw-r--r--src/main.rs4
3 files changed, 52 insertions, 73 deletions
diff --git a/src/gameloop.rs b/src/gameloop.rs
index d573868..e69de29 100644
--- a/src/gameloop.rs
+++ b/src/gameloop.rs
@@ -1,70 +0,0 @@
-use crate::generation::*;
-
-use colored::Colorize;
-use crossterm::{
- cursor::{Hide, MoveTo, Show},
- event,
- event::{poll, Event, KeyCode, KeyEvent},
- style::Stylize,
- terminal,
- terminal::{EnterAlternateScreen, LeaveAlternateScreen},
- ExecutableCommand, QueueableCommand,
-};
-use rand::{thread_rng, Rng};
-use std::{
- io::{self, Write},
- thread::sleep,
- time::Duration,
-};
-
-
-pub fn run() {
- let mut stdout = io::stdout();
- let mut frame: Gen = new_gen();
- let mut nxt;
-
- terminal::enable_raw_mode().unwrap();
- stdout.execute(EnterAlternateScreen).unwrap();
- stdout.execute(Hide).unwrap();
-
- 'gameloop: loop {
- while event::poll(Duration::default()).unwrap() {
- if let Event::Key(key_event) = event::read().unwrap() {
- match key_event.code {
- KeyCode::Esc | KeyCode::Char('q') => {
- break 'gameloop;
- }
- KeyCode::Char('s') => {
- frame = new_gen();
- render_gen(&mut stdout, &frame)
- }
-
- KeyCode::Char('n') => {
- nxt = next_gen(&mut frame);
- render_gen(&mut stdout, &nxt)
- }
- KeyCode::Char('a') => 'animate: loop {
- nxt = next_gen(&mut frame);
- render_gen(&mut stdout, &nxt);
- sleep(Duration::from_millis(16));
- if (poll(Duration::from_millis(1))).unwrap() {
- if let Event::Key(k) = event::read().unwrap() {
- match k.code {
- KeyCode::Char('q') => break 'animate,
- _ => {}
- }
- }
- } else {
- }
- },
- _ => {}
- }
- }
- }
- }
-
- stdout.execute(Show).unwrap();
- stdout.execute(LeaveAlternateScreen).unwrap();
- terminal::disable_raw_mode().unwrap();
-
-}
diff --git a/src/generation.rs b/src/generation.rs
index 6af0547..4188bed 100644
--- a/src/generation.rs
+++ b/src/generation.rs
@@ -118,3 +118,54 @@ pub fn next_gen(cur_gen: &mut Gen) -> Gen {
*cur_gen = nxt_gen.clone();
nxt_gen
}
+
+pub fn init() {
+ let mut stdout = io::stdout();
+ let mut frame: Gen = new_gen();
+ let mut nxt;
+
+ terminal::enable_raw_mode().unwrap();
+ stdout.execute(EnterAlternateScreen).unwrap();
+ stdout.execute(Hide).unwrap();
+
+ 'gameloop: loop {
+ while event::poll(Duration::default()).unwrap() {
+ if let Event::Key(key_event) = event::read().unwrap() {
+ match key_event.code {
+ KeyCode::Esc | KeyCode::Char('q') => {
+ break 'gameloop;
+ }
+ KeyCode::Char('s') => {
+ frame = new_gen();
+ render_gen(&mut stdout, &frame)
+ }
+
+ KeyCode::Char('n') => {
+ nxt = next_gen(&mut frame);
+ render_gen(&mut stdout, &nxt)
+ }
+ KeyCode::Char('a') => 'animate: loop {
+ nxt = next_gen(&mut frame);
+ render_gen(&mut stdout, &nxt);
+ sleep(Duration::from_millis(16));
+ if (poll(Duration::from_millis(1))).unwrap() {
+ if let Event::Key(k) = event::read().unwrap() {
+ match k.code {
+ KeyCode::Char('q') => break 'animate,
+ _ => {}
+ }
+ }
+ } else {
+ }
+ },
+ _ => {}
+ }
+ }
+ }
+ }
+
+ stdout.execute(Show).unwrap();
+ stdout.execute(LeaveAlternateScreen).unwrap();
+ terminal::disable_raw_mode().unwrap();
+
+}
diff --git a/src/main.rs b/src/main.rs
index 85f9eb0..056d16a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,11 +1,9 @@
#![allow(unused_imports, unused_variables, unused_mut)]
mod generation;
-mod gameloop;
-use gameloop::*;
use generation::*;
fn main() {
- run();
+ generation::init()
}