mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-27 22:00:31 +01:00
Implement day 8 2024 in Terraform
This commit is contained in:
52
2024/bonus/day08/freq/main.tf
Normal file
52
2024/bonus/day08/freq/main.tf
Normal file
@@ -0,0 +1,52 @@
|
||||
variable "width" {
|
||||
type = number
|
||||
}
|
||||
|
||||
variable "height" {
|
||||
type = number
|
||||
}
|
||||
|
||||
variable "antennae" {
|
||||
type = list(tuple([number, number]))
|
||||
}
|
||||
|
||||
locals {
|
||||
pairs = concat([
|
||||
for i in range(length(var.antennae)) :
|
||||
[
|
||||
for j in range(i + 1, length(var.antennae)) : [var.antennae[i], var.antennae[j]]
|
||||
]
|
||||
]...)
|
||||
}
|
||||
|
||||
module "pair" {
|
||||
source = "./pair"
|
||||
count = length(local.pairs)
|
||||
|
||||
first = local.pairs[count.index][0]
|
||||
second = local.pairs[count.index][1]
|
||||
width = var.width
|
||||
height = var.height
|
||||
}
|
||||
|
||||
output "nodes1" {
|
||||
value = setunion([
|
||||
for i in range(length(local.pairs)) :
|
||||
[
|
||||
for v in module.pair[i].nodes1 :
|
||||
v
|
||||
if v[0] >= 0 && v[0] < var.width && v[1] >= 0 && v[1] < var.height
|
||||
]
|
||||
]...)
|
||||
}
|
||||
|
||||
output "nodes2" {
|
||||
value = setunion([
|
||||
for i in range(length(local.pairs)) :
|
||||
[
|
||||
for v in module.pair[i].nodes2 :
|
||||
v
|
||||
if v[0] >= 0 && v[0] < var.width && v[1] >= 0 && v[1] < var.height
|
||||
]
|
||||
]...)
|
||||
}
|
||||
34
2024/bonus/day08/freq/pair/main.tf
Normal file
34
2024/bonus/day08/freq/pair/main.tf
Normal file
@@ -0,0 +1,34 @@
|
||||
variable "first" {
|
||||
type = tuple([number, number])
|
||||
}
|
||||
|
||||
variable "second" {
|
||||
type = tuple([number, number])
|
||||
}
|
||||
|
||||
variable "width" {
|
||||
type = number
|
||||
}
|
||||
|
||||
variable "height" {
|
||||
type = number
|
||||
}
|
||||
|
||||
locals {
|
||||
dx = var.second[0] - var.first[0]
|
||||
dy = var.second[1] - var.first[1]
|
||||
}
|
||||
|
||||
output "nodes1" {
|
||||
value = [
|
||||
[var.first[0] - local.dx, var.first[1] - local.dy],
|
||||
[var.second[0] + local.dx, var.second[1] + local.dy],
|
||||
]
|
||||
}
|
||||
|
||||
output "nodes2" {
|
||||
value = concat(
|
||||
[for i in range(max(var.width, var.height)) : [var.first[0] - i * local.dx, var.first[1] - i * local.dy]],
|
||||
[for i in range(max(var.width, var.height)) : [var.second[0] + i * local.dx, var.second[1] + i * local.dy]]
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user