Skip to content

Instantly share code, notes, and snippets.

View pencelab's full-sized avatar
☯️

Glenn pencelab

☯️
View GitHub Profile
panel {
val square = square {
lines = 8
char = 'd'
}
addShape(Space)
val triangle = triangle {
lines = 8
char = 'd'
}
fun Panel.rhombus(init: RhombusBuilder.() -> Unit): Rhombus {
return RhombusBuilder().apply { init() }.build().also { this.addShape(it) }
}
class RhombusBuilder {
var lines = 0
var char = '*'
fun build() = Rhombus(lines, char)
}
panel {
val square = square {
lines = 8
char = 'd'
}
addShape(Space)
val triangle = triangle {
lines = 8
char = 'd'
}
panel {
val square = square {
lines = 8
char = 'd'
}
addShape(Space)
val triangle = triangle {
lines = 8
char = 'd'
}
panel {
val square = square {
lines = 8
char = 'd'
}
addShape(Space)
val triangle = triangle {
lines = 7
char = 's'
}
fun Panel.triangle(init: TriangleBuilder.() -> Unit): Triangle {
return TriangleBuilder().apply { init() }.build().also { this.addShape(it) }
}
class TriangleBuilder {
var lines = 0
var char = '*'
fun build() = Triangle(lines, char)
}
panel {
val square = square {
lines = 8
char = 'd'
}
addShape(Space)
val triangle = triangle {
lines = 7
char = 's'
}
panel {
val square = square {
lines = 8
char = 'd'
}
val triangle = Triangle(7, 's')
...
addShape(Space)
addShape(triangle)
...