File tree Expand file tree Collapse file tree 2 files changed +104
-0
lines changed Expand file tree Collapse file tree 2 files changed +104
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ FILE=" $1 "
4
+
5
+ declare -A grid
6
+ declare -a origins
7
+ x=0
8
+ y=0
9
+
10
+ while IFS= read -n1 c; do
11
+ if [[ " $c " == " " ]]; then
12
+ (( y++ ))
13
+ x=0
14
+ continue
15
+ fi
16
+ grid[" $x ,$y " ]=$c
17
+ if [[ " $c " == " X" ]]; then
18
+ origins+=(" $x ,$y " )
19
+ fi
20
+ (( x++ ))
21
+ done < " $FILE "
22
+
23
+ count=0
24
+
25
+ scan () {
26
+ dx=" $1 "
27
+ dy=" $2 "
28
+ M=${grid[$((dx*1+x)),$((dy*1+y))]}
29
+ A=${grid[$((dx*2+x)),$((dy*2+y))]}
30
+ S=${grid[$((dx*3+x)),$((dy*3+y))]}
31
+ [[ " $M " == " M" && " $A " == " A" && " $S " == " S" ]] && (( count++ ))
32
+ }
33
+
34
+ for origin in " ${origins[@]} " ; do
35
+ x=" ${origin%% ,* } "
36
+ y=" ${origin##* ,} "
37
+ scan 1 0
38
+ scan -1 0
39
+ scan 0 1
40
+ scan 0 -1
41
+ scan 1 1
42
+ scan -1 -1
43
+ scan 1 -1
44
+ scan -1 1
45
+ done
46
+
47
+ echo $count
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ FILE=" $1 "
4
+
5
+ declare -A grid
6
+ declare -a origins
7
+ x=0
8
+ y=0
9
+
10
+ while IFS= read -n1 c; do
11
+ if [[ " $c " == " " ]]; then
12
+ (( y++ ))
13
+ x=0
14
+ continue
15
+ fi
16
+ grid[" $x ,$y " ]=$c
17
+ if [[ " $c " == " A" ]]; then
18
+ origins+=(" $x ,$y " )
19
+ fi
20
+ (( x++ ))
21
+ done < " $FILE "
22
+
23
+ count=0
24
+
25
+ scan () {
26
+ dx=" $1 "
27
+ dy=" $2 "
28
+ RVAL=${grid[$((dx*1+x)),$((dy*1+y))]}
29
+ }
30
+
31
+ for origin in " ${origins[@]} " ; do
32
+ x=" ${origin%% ,* } "
33
+ y=" ${origin##* ,} "
34
+ MAS=
35
+ scan -1 -1
36
+ MAS=" ${MAS}${RVAL} "
37
+ scan 1 -1
38
+ MAS=" ${MAS}${RVAL} "
39
+ scan 1 1
40
+ MAS=" ${MAS}${RVAL} "
41
+ scan -1 1
42
+ MAS=" ${MAS}${RVAL} "
43
+ case " $MAS " in
44
+ SMMS)
45
+ ;&
46
+ MMSS)
47
+ ;&
48
+ SSMM)
49
+ ;&
50
+ MSSM)
51
+ (( count++ ))
52
+ ;;
53
+ esac
54
+
55
+ done
56
+
57
+ echo $count
You can’t perform that action at this time.
0 commit comments