/*
Generate a random color in RGB format: rgb(R, G, B)
This program demonstrates how numbers and bits are used
to produce valid 8‑bit channel values.
*/
import kotlin.random.Random
// Create a random 8‑bit integer (0–255).
// Random.nextInt(256) returns a value in [0, 256),
// giving exactly one byte of color data.
fun randomChannel(): Int {
// 8 bits → values from 0 to 255
return Random.nextInt(256)
}
// Produce a random RGB color by combining the channels.
fun generateRandomRGB(): Triple<Int, Int, String> {
val r = randomChannel() // Red channel (8 bits)
val g = randomChannel() // Green channel (8 bits)
val b = randomChannel() // Blue channel (8 bits)
// Construct the CSS-style RGB string
val rgb = "rgb($r, $g, $b)"
return Triple(r, g, rgb)
}
fun main() {
val (r, g, rgb) = generateRandomRGB()
println("Red (8 bits): $r")
println("Green (8 bits): $g")
println("Blue (8 bits): ${rgb.substringAfterLast(", ").removeSuffix(")")}")
println("RGB color: $rgb")
}
/*
run:
Red (8 bits): 143
Green (8 bits): 23
Blue (8 bits): 188
RGB color: rgb(143, 23, 188)
*/