From 906dacf28b191faac71deb6045187df7e36a327f Mon Sep 17 00:00:00 2001 From: polsevev Date: Tue, 8 Nov 2022 02:30:46 +0100 Subject: [PATCH] increase speed giga --- src/Algorithm.rs | 2 ++ src/State.rs | 15 +++++++++++++-- src/main.rs | 4 ++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Algorithm.rs b/src/Algorithm.rs index d053d9d..b15f244 100644 --- a/src/Algorithm.rs +++ b/src/Algorithm.rs @@ -30,8 +30,10 @@ impl Algorithm{ yield list.swap(j, j-1); j = j-1; } + } + } } pub fn stalinSort(length:i32) -> impl Generator{ diff --git a/src/State.rs b/src/State.rs index d022207..8bf569b 100644 --- a/src/State.rs +++ b/src/State.rs @@ -1,5 +1,6 @@ use std::ops::{Generator, GeneratorState}; use std::pin::Pin; +use std::time::Instant; use macroquad::color::{BLACK, WHITE}; use macroquad::math::Vec2; use macroquad::prelude::{clear_background, draw_text, get_fps, get_time, next_frame, screen_width}; @@ -18,12 +19,18 @@ impl State{ let mut ret = false; let mut lasttime:f64 = 0.; let mut holder = GuiVec::new(screen_width(), screen_height(), length); + let mut counter = 0; + loop{ clear_background(WHITE); if get_time()-lasttime > timeout && !finished && !paused{ + let now = Instant::now(); match Pin::new(& mut generator).resume(()){ GeneratorState::Yielded(x) => { holder = x; + let elapsed = now.elapsed(); + //println!("{}", elapsed.as_micros()); + println!("{}", get_fps()) }, GeneratorState::Complete(x) => { finished = true; @@ -51,8 +58,12 @@ impl State{ if (finished && ret) || ret { break; } - - next_frame().await + if counter != 20{ + counter += 1; + }else{ + counter = 0; + next_frame().await + } } } } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 9c24a43..181a4a1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,9 +19,9 @@ use crate::Algorithm::AlgoEnum; #[macroquad::main("BeepSort")] async fn main() { - let mut length = 100; + let mut length = 200; - let mut delay = 0.01; + let mut delay = 0.0; loop{ clear_background(WHITE);