11//! [Day 17: Trick Shot](https://adventofcode.com/2021/day/17)
22
33use std:: cmp:: Ordering ;
4- use std:: env;
5- use std:: fs;
64use text_io:: scan;
75
86/// main function
@@ -12,29 +10,33 @@ fn main() {
1210 let ord_min: i32 ;
1311 let ord_max: i32 ;
1412
15- let args: Vec < String > = env:: args ( ) . collect ( ) ;
16-
17- match args. len ( ) {
18- 5 => {
19- abs_min = args[ 1 ] . parse :: < i32 > ( ) . unwrap ( ) ;
20- abs_max = args[ 2 ] . parse :: < i32 > ( ) . unwrap ( ) ;
21- ord_min = args[ 3 ] . parse :: < i32 > ( ) . unwrap ( ) ;
22- ord_max = args[ 4 ] . parse :: < i32 > ( ) . unwrap ( ) ;
23- }
24- 2 => {
25- let data = fs:: read_to_string ( & args[ 1 ] ) . unwrap ( ) ;
26- scan ! ( data. bytes( ) => "target area: x={}..{}, y={}..{}" ,
27- abs_min, abs_max, ord_min, ord_max) ;
28- }
29- 1 => {
30- let data = fs:: read_to_string ( "input.txt" ) . unwrap ( ) ;
31- scan ! ( data. bytes( ) => "target area: x={}..{}, y={}..{}" ,
32- abs_min, abs_max, ord_min, ord_max) ;
33- }
34- _ => {
35- panic ! ( "Invalid number of arguments" ) ;
36- }
37- }
13+ let data = aoc:: load_input_data ( 17 ) ;
14+ scan ! ( data. bytes( ) => "target area: x={}..{}, y={}..{}" ,
15+ abs_min, abs_max, ord_min, ord_max) ;
16+
17+ // let args: Vec<String> = std::env::args().collect();
18+
19+ // match args.len() {
20+ // 5 => {
21+ // abs_min = args[1].parse::<i32>().unwrap();
22+ // abs_max = args[2].parse::<i32>().unwrap();
23+ // ord_min = args[3].parse::<i32>().unwrap();
24+ // ord_max = args[4].parse::<i32>().unwrap();
25+ // }
26+ // 2 => {
27+ // let data = fs::read_to_string(&args[1]).unwrap();
28+ // scan!(data.bytes() => "target area: x={}..{}, y={}..{}",
29+ // abs_min, abs_max, ord_min, ord_max);
30+ // }
31+ // 1 => {
32+ // let data = std::fs::read_to_string("input.txt").unwrap();
33+ // scan!(data.bytes() => "target area: x={}..{}, y={}..{}",
34+ // abs_min, abs_max, ord_min, ord_max);
35+ // }
36+ // _ => {
37+ // panic!("Invalid number of arguments");
38+ // }
39+ // }
3840 // println!("target area: x={}..{}, y={}..{}", abs_min, abs_max, ord_min, ord_max);
3941
4042 let parts = solve ( abs_min, abs_max, ord_min, ord_max) ;
@@ -67,7 +69,7 @@ fn solve(abs_min: i32, abs_max: i32, ord_min: i32, ord_max: i32) -> (i32, i32) {
6769 match vx. cmp ( & 0 ) {
6870 Ordering :: Greater => vx -= 1 ,
6971 Ordering :: Less => vx += 1 ,
70- _ => ( ) ,
72+ Ordering :: Equal => ( ) ,
7173 }
7274
7375 vy -= 1 ; // the probe's y velocity decreases by 1.
0 commit comments