Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion src/command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,18 @@ pub fn status(game_state: &GameState) {
}
);
println!();
// Get compilation parameters
let (compile_time, credit_reward, failure_probability) =
parameters::get_compilation_parameters(game_state);
println!("[COMPILATION]");
println!();
parameters::show_compilation_parameters(game_state);
println!(
"Compile time {:02}:{:02}",
(compile_time / 60.0) as u64,
compile_time as u64 % 60
);
println!("Credit reward {credit_reward:.2}");
println!("Failure probability {:.1}%", failure_probability * 100.0);
}

pub fn guide() {
Expand Down
20 changes: 12 additions & 8 deletions src/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ use std::thread;
use std::time::{Duration, Instant};
use which::which;

use crate::command;
use crate::parameters;
use crate::statefile::{self, GameState};
use crate::upgrade;
Expand All @@ -18,6 +19,17 @@ pub fn compile_process(
game_state: &mut GameState,
interrupt_rx: &Receiver<()>,
) -> anyhow::Result<bool> {
// Run auto-scaling if enabled
upgrade::auto_scale(game_state)?;

// Get compilation parameters
let (compile_time, credit_reward, failure_probability) =
parameters::get_compilation_parameters(game_state);

// Show status (to see the current numbers of resources and compilation parameters)
command::status(game_state);
println!();

// Silly messages
println!(
"{} Synchronizing imaginary dependencies...",
Expand All @@ -36,14 +48,6 @@ pub fn compile_process(

println!();

// Run auto-scaling if enabled
upgrade::auto_scale(game_state)?;

// Get and show compilation parameters
let (compile_time, credit_reward, failure_probability) =
parameters::show_compilation_parameters(game_state);
println!();

// Convert compile time to a Duration (used later to determine when the compilation is over)
let compile_time = Duration::from_secs_f64(compile_time);

Expand Down
13 changes: 2 additions & 11 deletions src/parameters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,23 +49,14 @@ pub fn failure_probability(cpu: u64, disk: u64) -> f64 {
probability.clamp(MIN_COMPILATION_FAILURE_PROB, MAX_COMPILATION_FAILURE_PROB)
}

// Helper to retrieve and show the different compilation parameters:
// Helper to retrieve the different compilation parameters:
// compile time, credit reward and failure percentage
pub fn show_compilation_parameters(game_state: &GameState) -> (f64, f64, f64) {
pub fn get_compilation_parameters(game_state: &GameState) -> (f64, f64, f64) {
// Calculate values
let compile_time = compile_time(game_state.cpu, game_state.ram);
let credit_reward = credit_reward(game_state.ram, game_state.disk);
let failure_probability = failure_probability(game_state.cpu, game_state.disk);

// Show values
println!(
"Compile time {:02}:{:02}",
(compile_time / 60.0) as u64,
compile_time as u64 % 60
);
println!("Credit reward {credit_reward:.2}");
println!("Failure probability {:.1}%", failure_probability * 100.0);

// Return values
(compile_time, credit_reward, failure_probability)
}