// import std.random.*
from std import random.*

main() {
    let number: Int8 = Random().nextInt8()
    println(number)
    if (number % 2 == 0) {
        // 偶数
        println("even")
    } else {
        // 奇数
        println("odd")
    }

//     let number = 1
// // Error, mismatched types
//     if (number) { 
//         println("Non-zero number")
//     }

    let speed = Random().nextFloat64() * 20.0
    println("${speed} km/s")
    if (speed > 16.7) {
        println("3.第三宇宙速度,鹊桥相会")
    } else if (speed > 11.2) {
        println("2.第二宇宙速度,嫦娥奔月")
    } else if (speed > 7.9) {
        println("1.第一宇宙速度,腾云驾雾")
    } else {
        println("0.脚踏实地,仰望星空")
    }

    println("---------------------")

    let zero: Int8 = 0
    let one: Int8 = 1
    let voltage = 5.0
    let bit = if (voltage < 2.5) {
        zero
    } else {
        one
    }
    println("bit : ${bit}")

    println("---------------------")


    var root = 0.0
    var min = 1.0
    var max = 2.0
    var error = 1.0
    let tolerance = 0.1 ** 10

    while (error ** 2 > tolerance) {
        root = (min + max) / 2.0
        error = root ** 2 - 2.0
        if (error > 0.0) {
            max = root
        } else {
            min = root
        }
    }
    println("The square root of 2 is approximately equal to : ${root}")


    println("---------------------")
    let random = Random()
    var totalPoints = 0
    var hitPoints = 0

    do {
        // 在 ((0, 0), (1, 1)) 这个正方形中随机取点
        let x = random.nextFloat64()
        let y = random.nextFloat64()
        // 判断是否落在正方形内接圆里
        if ((x - 0.5) ** 2 + (y - 0.5) ** 2 < 0.25) {
            hitPoints++
        }
        totalPoints++
    } while (totalPoints < 1000000)

    let pi = 4.0 * Float64(hitPoints) / Float64(totalPoints)
    println("The approximate value of pi is : ${pi}")


    println("---------------------")


    // let metaArray = [r'甲', r'乙', r'丙', r'丁', r'戊', r'己', r'庚', r'辛', r'壬', r'癸'];
    let metaArray = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
    // let noumenonArray = [r'寅', r'卯', r'辰', r'巳', r'午', r'未', r'申', r'酉', r'戌', r'亥', r'子', r'丑']
    let noumenonArray = ['寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑']
    let year = 2024
    // 年份对应的天干索引
    let metaOfYear = ((year % 10) + 10 - 4) % 10
    // 此年首月对应的天干索引
    var index = (2 * metaOfYear + 3) % 10 - 1
    println("农历 2024 年各月干支:")
    for (noumenon in noumenonArray) {
        print("${metaArray[index]}${noumenon} ")
        index = (index + 1) % 10
    }
    println()
    println("-----------------------------------------------")

    var sum = 0
    for (i in 1..=100) {
        sum += i
    }
    println(sum)

    println("-----------------------------------------------")

    // 遍历1到100之间的所有整数
    for (i in 1..=100) {
        // 检查当前数字是否为偶数
        if (i % 2 == 0) {
            // 如果是偶数,则打印该数字
            println(i)
        }
    }

    println("------------------------------------------------")
    let array = [(1, 2), (3, 4), (5, 6)]
    for ((x, y) in array) {
        println("${x}, ${y}")
    }
    println("------------------------------------------------")
    var number2 = 2
    for (_ in 0..5) {
        number2 *= number2
    }
    //4294967296
    println(number2)
    println("------------------------------------------------")
    // i 为奇数才会执行循环体
    for (i in 0..8 where i % 2 == 1) { 
        println(i)
    }
    println("------------------------------------------------") 

    // 遍历数组,找到第一个能被5整除的数
    let numbers = [12, 18, 25, 36, 49, 55]
    for (number in numbers) {
        if (number % 5 == 0) {
            println(number)
            break
        }
    }






}