@@ -8,7 +8,6 @@ declare -A grid
8
8
RID=0
9
9
declare -A regions
10
10
declare -A area
11
- declare -A perimeter
12
11
while IFS= read -r -n1 c; do
13
12
if [[ " $c " == " " ]]; then
14
13
(( y++ ))
@@ -44,10 +43,8 @@ for ((gy=0; gy<height; gy++)); do
44
43
d=" ${x} ,$(( y+ 1 )) "
45
44
l=" $(( x- 1 )) ,${y} "
46
45
r=" $(( x+ 1 )) ,${y} "
47
- P=4
48
46
if [[ $c == ${grid[$up]} ]]; then
49
47
queue+=(" $up " )
50
- (( P-- ))
51
48
else
52
49
if [[ -n ${edges[$RID]} ]]; then
53
50
edges[$RID ]=" ${edges[$RID]} $up ,U"
@@ -57,7 +54,6 @@ for ((gy=0; gy<height; gy++)); do
57
54
fi
58
55
if [[ $c == ${grid[$d]} ]]; then
59
56
queue+=(" $d " )
60
- (( P-- ))
61
57
else
62
58
if [[ -n ${edges[$RID]} ]]; then
63
59
edges[$RID ]=" ${edges[$RID]} $d ,D"
@@ -67,7 +63,6 @@ for ((gy=0; gy<height; gy++)); do
67
63
fi
68
64
if [[ $c == ${grid[$l]} ]]; then
69
65
queue+=(" $l " )
70
- (( P-- ))
71
66
else
72
67
if [[ -n ${edges[$RID]} ]]; then
73
68
edges[$RID ]=" ${edges[$RID]} $l ,L"
@@ -77,24 +72,14 @@ for ((gy=0; gy<height; gy++)); do
77
72
fi
78
73
if [[ $c == ${grid[$r]} ]]; then
79
74
queue+=(" $r " )
80
- (( P-- ))
81
75
else
82
76
if [[ -n ${edges[$RID]} ]]; then
83
77
edges[$RID ]=" ${edges[$RID]} $r ,R"
84
78
else
85
79
edges[$RID ]=" $r ,R"
86
80
fi
87
81
fi
88
- (( perimeter[$RID ]+= P))
89
82
(( area[$RID ]+= 1 ))
90
- # if [[ ${grid[$u]} == $c ]]; then
91
- # regions[$x,$y]=${regions[$u]}
92
- # elif [[ ${grid[$l]} == $c ]]; then
93
- # regions[$x,$y]=${regions[$l]}
94
- # else
95
- # ((RID++))
96
- # regions[$x,$y]=$RID
97
- # fi
98
83
done
99
84
if [[ -n $DID_ANYTHING ]]; then
100
85
(( RID++ ))
0 commit comments