@@ -73,70 +73,37 @@ private fun increaseEnergyLevelOfAllByOne(octopuses: Array<IntArray>) {
7373private 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