Skip to content

Commit 6e1ef9d

Browse files
committed
Refactor
1 parent f09dec5 commit 6e1ef9d

File tree

1 file changed

+15
-48
lines changed

1 file changed

+15
-48
lines changed

src/Day11.kt

Lines changed: 15 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -73,70 +73,37 @@ private fun increaseEnergyLevelOfAllByOne(octopuses: Array<IntArray>) {
7373
private fun makeOctopusFlash(octopuses: Array<IntArray>, x: Int, y: Int, flashedOctopuses: Array<BooleanArray>) {
7474
flashedOctopuses[x][y] = true
7575

76-
var xIndex = x-1
77-
var yIndex = y
7876
if (x > 0) {
79-
octopuses[xIndex][yIndex]++
80-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
81-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
82-
}
77+
increaseEnergyAndFlashIfThresholdReached(octopuses, x-1, y, flashedOctopuses)
8378
}
84-
xIndex = x+1
85-
yIndex = y
8679
if (x < octopuses.size - 1) {
87-
octopuses[xIndex][yIndex]++
88-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
89-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
90-
}
80+
increaseEnergyAndFlashIfThresholdReached(octopuses, x+1, y, flashedOctopuses)
9181
}
92-
xIndex = x
93-
yIndex = y-1
9482
if (y > 0) {
95-
octopuses[xIndex][yIndex]++
96-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
97-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
98-
}
83+
increaseEnergyAndFlashIfThresholdReached(octopuses, x, y-1, flashedOctopuses)
9984
}
100-
xIndex = x
101-
yIndex = y+1
10285
if (y < octopuses[0].size - 1) {
103-
octopuses[xIndex][yIndex]++
104-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
105-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
106-
}
86+
increaseEnergyAndFlashIfThresholdReached(octopuses, x, y+1, flashedOctopuses)
10787
}
10888

109-
xIndex = x-1
110-
yIndex = y-1
11189
if (x > 0 && y > 0) {
112-
octopuses[xIndex][yIndex]++
113-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
114-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
115-
}
90+
increaseEnergyAndFlashIfThresholdReached(octopuses, x-1, y-1, flashedOctopuses)
11691
}
117-
xIndex = x+1
118-
yIndex = y+1
11992
if (y < octopuses[0].size - 1 && x < octopuses.size - 1) {
120-
octopuses[xIndex][yIndex]++
121-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
122-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
123-
}
93+
increaseEnergyAndFlashIfThresholdReached(octopuses, x+1, y+1, flashedOctopuses)
12494
}
125-
xIndex = x+1
126-
yIndex = y-1
12795
if (x < octopuses.size - 1 && y > 0) {
128-
octopuses[xIndex][yIndex]++
129-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
130-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
131-
}
96+
increaseEnergyAndFlashIfThresholdReached(octopuses, x+1, y-1, flashedOctopuses)
13297
}
133-
xIndex = x-1
134-
yIndex = y+1
13598
if (y < octopuses.size - 1 && x > 0) {
136-
octopuses[xIndex][yIndex]++
137-
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
138-
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
139-
}
99+
increaseEnergyAndFlashIfThresholdReached(octopuses, x-1, y+1, flashedOctopuses)
100+
}
101+
}
102+
103+
private fun increaseEnergyAndFlashIfThresholdReached(octopuses: Array<IntArray>, xIndex: Int, yIndex: Int, flashedOctopuses: Array<BooleanArray>) {
104+
octopuses[xIndex][yIndex]++
105+
if (octopuses[xIndex][yIndex] > 9 && !flashedOctopuses[xIndex][yIndex]) {
106+
makeOctopusFlash(octopuses, xIndex, yIndex, flashedOctopuses)
140107
}
141108
}
142109

0 commit comments

Comments
 (0)