/*
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 Foundation
/// Create a random 8‑bit integer (0–255).
/// Int.random(in:) returns a value in the given range.
/// 256 (2^8) gives exactly one byte of color data.
func randomChannel() -> Int {
// 8 bits → values from 0 to 255
Int.random(in: 0 ..< 256)
}
/// Produce a random RGB color by combining the channels.
func generateRandomRGB() -> (r: Int, g: Int, b: Int, rgb: String) {
let r = randomChannel() // Red channel (8 bits)
let g = randomChannel() // Green channel (8 bits)
let b = randomChannel() // Blue channel (8 bits)
// Construct the CSS-style RGB string
let rgb = "rgb(\(r), \(g), \(b))"
return (r, g, b, rgb)
}
// Run the program
let result = generateRandomRGB()
print("Red (8 bits):", result.r)
print("Green (8 bits):", result.g)
print("Blue (8 bits):", result.b)
print("RGB color:", result.rgb)
/*
run:
Red (8 bits): 162
Green (8 bits): 168
Blue (8 bits): 115
RGB color: rgb(162, 168, 115)
*/