6 # these wires should give 6
10 # these wires should get 159
11 #wire_1=(R75 D30 R83 U83 L12 D49 R71 U7 L72)
12 #wire_2=(U62 R66 U55 R34 D71 R55 D58 R83)
14 # these wires should get 135
15 #wire_1=(R98 U47 R26 D63 R33 U87 L62 D20 R33 U53 R51)
16 #wire_2=(U98 R91 D20 R16 D67 R40 U7 R15 U6 R7)
18 # read in data from file instead
20 IFS="," read -u 3 -a wire_1
21 IFS="," read -u 3 -a wire_2
33 for operation in "${w[@]}"; do
34 direction=${operation:0:1}
53 for (( moved=1; moved <= $amount; moved++ )); do
54 cur_vert=$((cur_vert${operator}1))
55 if [ ${b[$cur_horz,$cur_vert]+a} ] && [ $wire_number -eq 2 ]; then
56 if [ ${b[$cur_horz,$cur_vert]} -eq 1 ]; then
57 c+=($cur_horz,$cur_vert)
58 b[$cur_horz,$cur_vert]=3
62 b[$cur_horz,$cur_vert]=$wire_number
66 for (( moved=1; moved <= $amount; moved++ )); do
67 cur_horz=$((cur_horz${operator}1))
68 if [ ${b[$cur_horz,$cur_vert]+a} ] && [ $wire_number -eq 2 ]; then
69 if [ ${b[$cur_horz,$cur_vert]} -eq 1 ]; then
70 c+=($cur_horz,$cur_vert)
71 b[$cur_horz,$cur_vert]=3
75 b[$cur_horz,$cur_vert]=$wire_number
83 declare -a cross_wires
84 echo "Tracing first wire"
85 trace_wire wire_1 board cross_wires 1
86 echo "Tracing second wire"
87 trace_wire wire_2 board cross_wires 2
89 echo "Wires cross at:"
91 for cross in "${cross_wires[@]}"; do
97 distance=$((horz+$vert))
98 if [ $min_distance -lt 0 ] || [ $min_distance -gt $distance ]; then
99 min_distance=$distance
103 echo Min distance: $min_distance