Bläddra i källkod

Add debug printing

main
Noëlle 3 år sedan
förälder
incheckning
8702b15149
1 ändrade filer med 41 tillägg och 25 borttagningar
  1. 41
    25
      src/main.rs

+ 41
- 25
src/main.rs Visa fil

@@ -1,8 +1,17 @@
use rand::{ distributions:: {Distribution, Standard}, Rng };
use std::fmt::Debug;
//use dict::{ Dict, DictIface };
//use std::collections::HashMap;

#[derive(Debug)]
const DBG_LVL: u32 = 0;

fn dbg_print(msg: &impl Debug, lvl: u32) {
if lvl <= DBG_LVL {
println!("{:?}", msg);
}
}

#[derive(Debug, Copy, Clone)]
enum Cls {
Artificer = 0,
Barbarian,
@@ -44,7 +53,7 @@ impl Distribution<Cls> for Standard {
}
}
#[derive(Debug, Default)]
#[derive(Debug, Default, Copy, Clone)]
struct Character {
class: Cls,
strength: u32,
@@ -61,38 +70,45 @@ impl Character {
}
fn gen_stats(&mut self) {
let associated_stats = vec!(
[3,1,2,5,4,0],
[0,2,1,5,4,3],
[5,1,3,4,2,0],
[4,2,0,3,5,1],
[4,2,3,1,0,5],
[0,2,1,3,4,5],
[1,4,2,0,3,5],
[0,5,2,4,1,3],
[1,4,0,2,3,5],
[1,3,5,2,0,4],
[5,2,3,4,1,0],
[5,2,3,4,1,0],
[3,4,2,5,1,0]
[0,4,3,5,1,2], // Artificer
[5,3,4,0,1,2], // Barbarian
[0,4,1,3,2,5], // Bard
[3,0,4,2,5,1], // Cleric
[1,2,4,3,5,0], // Druid
[5,3,4,2,1,0], // Fighter
[2,5,3,1,4,0], // Monk
[5,1,3,0,2,4], // Paladin
[3,5,2,1,4,0], // Ranger
[1,5,2,4,0,3], // Rogue
[0,1,4,3,2,5], // Sorcerer
[0,1,4,3,2,5], // Warlock
[0,1,3,5,4,2] // Wizard
);
let cls = self.class as u32;
println!("{:?}", associated_stats[cls]);
// println!("{:?}", associated_stats);
self.strength = roll_stat();
self.dexterity = roll_stat();
self.constitution = roll_stat();
self.intelligence = roll_stat();
self.wisdom = roll_stat();
self.charisma = roll_stat();
let statblock = associated_stats[cls as usize];
dbg_print(&statblock, 2);
let mut rolled_stats = Vec::new();
while rolled_stats.len() < 6 {
rolled_stats.push(roll_stat());
}
dbg_print(&rolled_stats, 2);
rolled_stats.sort();
dbg_print(&rolled_stats, 2);
self.strength = rolled_stats[statblock[0]];
self.dexterity = rolled_stats[statblock[1]];
self.constitution = rolled_stats[statblock[2]];
self.intelligence = rolled_stats[statblock[3]];
self.wisdom = rolled_stats[statblock[4]];
self.charisma = rolled_stats[statblock[5]];
}
}

fn roll_stat() -> u32 {
let mut rolls = Vec::new();
while rolls.len()<4 {
let roll = rand::thread_rng().gen_range(1..=6);
let mut roll = rand::thread_rng().gen_range(1..=6);
if roll == 1 {
continue;
roll = rand::thread_rng().gen_range(1..=6);
}
rolls.push(roll);
}

Laddar…
Avbryt
Spara