Compare commits
2 commits
450a6b4f8a
...
6f5e848c09
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6f5e848c09 | ||
![]() |
604a4a7b29 |
2 changed files with 12 additions and 11 deletions
|
@ -60,7 +60,7 @@ impl NanoFactory {
|
||||||
.collect();
|
.collect();
|
||||||
}
|
}
|
||||||
self.ordered.reverse();
|
self.ordered.reverse();
|
||||||
self.ordered.pop();
|
self.ordered.retain(|res| res != "ORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// calculate how much ores are required for required_fuel
|
/// calculate how much ores are required for required_fuel
|
||||||
|
@ -84,6 +84,7 @@ impl NanoFactory {
|
||||||
});
|
});
|
||||||
|
|
||||||
// return cost for ore
|
// return cost for ore
|
||||||
|
println!("{:?}", storage);
|
||||||
*storage.get("ORE").unwrap() as usize
|
*storage.get("ORE").unwrap() as usize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,7 +278,8 @@ mod tests {
|
||||||
.trim()
|
.trim()
|
||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
);
|
);
|
||||||
let factory = NanoFactory::from(bufreader);
|
let mut factory = NanoFactory::from(bufreader);
|
||||||
|
factory.resolve_order();
|
||||||
assert_eq!(factory.generate_fuel(), 31);
|
assert_eq!(factory.generate_fuel(), 31);
|
||||||
assert_eq!(factory.resource_usage(1), 31);
|
assert_eq!(factory.resource_usage(1), 31);
|
||||||
}
|
}
|
||||||
|
@ -297,7 +299,8 @@ mod tests {
|
||||||
.trim()
|
.trim()
|
||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
);
|
);
|
||||||
let factory = NanoFactory::from(bufreader);
|
let mut factory = NanoFactory::from(bufreader);
|
||||||
|
factory.resolve_order();
|
||||||
assert_eq!(factory.generate_fuel(), 165);
|
assert_eq!(factory.generate_fuel(), 165);
|
||||||
assert_eq!(factory.resource_usage(1), 165);
|
assert_eq!(factory.resource_usage(1), 165);
|
||||||
}
|
}
|
||||||
|
@ -321,7 +324,6 @@ mod tests {
|
||||||
);
|
);
|
||||||
let factory = NanoFactory::from(bufreader);
|
let factory = NanoFactory::from(bufreader);
|
||||||
assert_eq!(factory.generate_fuel(), 13312);
|
assert_eq!(factory.generate_fuel(), 13312);
|
||||||
assert_eq!(factory.generate_fuel_from_ores(1_000_000_000_000), 82892753);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -344,10 +346,10 @@ mod tests {
|
||||||
.trim()
|
.trim()
|
||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
);
|
);
|
||||||
let factory = NanoFactory::from(bufreader);
|
let mut factory = NanoFactory::from(bufreader);
|
||||||
|
factory.resolve_order();
|
||||||
assert_eq!(factory.generate_fuel(), 180697);
|
assert_eq!(factory.generate_fuel(), 180697);
|
||||||
assert_eq!(factory.resource_usage(1), 180697);
|
assert_eq!(factory.resource_usage(1), 180697);
|
||||||
// TODO assert_eq!(factory.generate_fuel_from_ores(1_000_000_000_000), 5586022);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -375,9 +377,9 @@ mod tests {
|
||||||
.trim()
|
.trim()
|
||||||
.as_bytes(),
|
.as_bytes(),
|
||||||
);
|
);
|
||||||
let factory = NanoFactory::from(bufreader);
|
let mut factory = NanoFactory::from(bufreader);
|
||||||
|
factory.resolve_order();
|
||||||
assert_eq!(factory.generate_fuel(), 2210736);
|
assert_eq!(factory.generate_fuel(), 2210736);
|
||||||
assert_eq!(factory.resource_usage(1), 2210736);
|
assert_eq!(factory.resource_usage(1), 2210736);
|
||||||
// TODO assert_eq!(factory.generate_fuel_from_ores(1_000_000_000_000), 460664);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,9 +319,8 @@ impl Computer {
|
||||||
Mode::Immediate => want,
|
Mode::Immediate => want,
|
||||||
Mode::Relative => (self.rel + self.get_pos(want)) as usize,
|
Mode::Relative => (self.rel + self.get_pos(want)) as usize,
|
||||||
};
|
};
|
||||||
if length < want {
|
if length <= want {
|
||||||
let missing = (want - length) + 10000;
|
self.program.resize(want + 1, 0);
|
||||||
self.program.extend_from_slice(&vec![0; missing])
|
|
||||||
}
|
}
|
||||||
self.program[want] = value;
|
self.program[want] = value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue