Day10 even more streamy

This commit is contained in:
2019-12-14 19:19:59 +01:00
parent ab7a6aa486
commit dc1149971f

View File

@@ -4,7 +4,6 @@ import com.basdado.adventofcode.lines
import java.util.stream.Collectors import java.util.stream.Collectors
import java.util.stream.IntStream import java.util.stream.IntStream
import java.util.stream.Stream import java.util.stream.Stream
import java.util.stream.StreamSupport
import kotlin.math.PI import kotlin.math.PI
import kotlin.math.abs import kotlin.math.abs
import kotlin.math.atan2 import kotlin.math.atan2
@@ -33,10 +32,11 @@ object Day10 {
.entries .entries
.sortedBy { val angle = (it.key.angle() + 0.5 * PI); if (angle < 0) 2*PI + angle else angle } .sortedBy { val angle = (it.key.angle() + 0.5 * PI); if (angle < 0) 2*PI + angle else angle }
.map { it.value.sortedBy( Vector2i::manhattan ) } .map { it.value.sortedBy( Vector2i::manhattan ) }
val sortedAsteroidIterators = sortedAsteroidLists.map { it.iterator() }
val asteroid200 = optimalAsteroid.first + IntStream.range(0, 1000000) val sortedAsteroidIterators = sortedAsteroidLists.map { it.iterator() }
.mapToObj { sortedAsteroidIterators[it % sortedAsteroidIterators.size] } val asteroid200 = optimalAsteroid.first +
Stream.generate { sortedAsteroidIterators.stream() }
.flatMap { it }
.sequential() .sequential()
.filter { it.hasNext() } .filter { it.hasNext() }
.map { it.next() } .map { it.next() }