Author: Nicholas Prado <nmprado@nzen.ws>
Date: Fri Dec 3 02:24:58 UTC 2021
Parent: 571913013f5a14082d0d1f8e025f91b50624c786
Log message:
feat 21 02.2 aim
1: diff --git a/src/java/y2021/Exercise210202.java b/src/java/y2021/Exercise210202.java
2: new file mode 100644
3: index 0000000..0da389a
4: --- /dev/null
5: +++ b/src/java/y2021/Exercise210202.java
6: @@ -0,0 +1,94 @@
7: +
8: +import java.io.IOException;
9: +import java.nio.file.*;
10: +import java.util.*;
11: +
12: +public class Exercise210202
13: +{
14: +
15: + public static void main(
16: + String args[]
17: + ) {
18: + final String here = "e210202.m ";
19: + if ( args.length < 1 )
20: + {
21: + throw new RuntimeException( here +"add a filename argument" );
22: + }
23: + String userSaysFile = args[ 0 ];
24: + List<String> fileLines = new LinkedList<>();
25: + try
26: + {
27: + Path where = Paths.get( userSaysFile );
28: + fileLines = Files.readAllLines( where );
29: + }
30: + catch ( IOException | InvalidPathException ie )
31: + {
32: + System.err.println( here +"couldn't read file "+ userSaysFile +" because "+ ie );
33: + return;
34: + }
35: + /*
36: + - interpretation of spec -
37: + */
38: + Exercise210202.findFinalDistance( fileLines );
39: + }
40: +
41: +
42: + private static void findFinalDistance(
43: + List<String> fileLines
44: + ) {
45: + final int dirInd = 0, valInd = dirInd +1;
46: + int horizontalPosition = 0, depth = 0, aim = 0;
47: + for ( String line : fileLines )
48: + {
49: + if ( line.isEmpty() )
50: + continue;
51: + String[] linePieces = line.split( " " );
52: + int magnitude = Integer.parseInt( linePieces[ valInd ] );
53: + switch ( linePieces[ dirInd ] )
54: + {
55: + case "forward" :
56: + horizontalPosition += magnitude;
57: + depth += aim * magnitude;
58: + break;
59: + case "down" :
60: + aim += magnitude;
61: + break;
62: + case "up" :
63: + aim -= magnitude;
64: + break;
65: + default :
66: + continue;
67: + }
68: + }
69: + System.out.println( depth * horizontalPosition );
70: + }
71: +
72: +
73: +}
74: +
75: +
76: +
77: +
78: +
79: +
80: +
81: +
82: +
83: +
84: +
85: +
86: +
87: +
88: +
89: +
90: +
91: +
92: +
93: +
94: +
95: +
96: +
97: +
98: +
99: +
100: +