用 QBASIC 编写指针式时钟,时针、分针、秒针用不同颜色标示

CLS
SCREEN 12
DIM SHARED cx, cy, r AS INTEGER
DIM SHARED hour, minute, second AS INTEGER

cx = 320: cy = 240: r = 200
hour = 0: minute = 0: second = 0

DO
    '获取当前时间
    hour = VAL(MID$(TIME$, 1, 2))
    minute = VAL(MID$(TIME$, 4, 2))
    second = VAL(MID$(TIME$, 7, 2))

    '画时钟表盘
    CIRCLE (cx, cy), r, 15, , , , , FILL
    CIRCLE (cx, cy), r, 0

    '画时针
    LINE (cx, cy)-(cx + 80 * SIN(hour * 30 + minute / 2), cy - 80 * COS(hour * 30 + minute / 2)), 4

    '画分针
    LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2

    '画秒针
    LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1

    '等待1秒
    SLEEP 1
LOOP UNTIL INKEY$ <> ""

解释:

  1. CLS:清空屏幕

  2. SCREEN 12:设置屏幕模式

  3. DIM SHARED cx, cy, r AS INTEGER:定义全局变量,表示时钟中心点坐标和半径

  4. DIM SHARED hour, minute, second AS INTEGER:定义全局变量,表示当前时间的时、分、秒

  5. cx = 320: cy = 240: r = 200:初始化时钟中心点坐标和半径

  6. hour = 0: minute = 0: second = 0:初始化当前时间

  7. DO:程序进入无限循环,不断更新时钟

  8. hour = VAL(MID$(TIME$, 1, 2)):获取当前小时数

  9. minute = VAL(MID$(TIME$, 4, 2)):获取当前分钟数

  10. second = VAL(MID$(TIME$, 7, 2)):获取当前秒数

  11. CIRCLE (cx, cy), r, 15, , , , , FILL:画一个以(cx, cy)为中心,半径为r,填充颜色为15(白色)的圆,表示时钟表盘

  12. CIRCLE (cx, cy), r, 0:画一个以(cx, cy)为中心,半径为r,边框颜色为0(黑色)的圆,表示时钟表盘的边框

  13. LINE (cx, cy)-(cx + 80 * SIN(hour * 30 + minute / 2), cy - 80 * COS(hour * 30 + minute / 2)), 4:画一个从(cx, cy)到时针末端的线段,线宽为4,表示时针

  14. LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2:画一个从(cx, cy)到分针末端的线段,线宽为2,表示分针

  15. LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1:画一个从(cx, cy)到秒针末端的线段,线宽为1,表示秒针

  16. SLEEP 1:等待1秒

  17. LOOP UNTIL INKEY$ <> "":程序进入无限循环,直到用户按下任意键结束程序。

**注意:**这段代码需要在支持 QBASIC 的环境中运行。

更多学习资源:

  • QBASIC 官方文档:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms716099(v=vs.85)
  • QBASIC 教程:https://www.tutorialspoint.com/qbasic/index.htm

原文地址: http://www.cveoy.top/t/topic/jvDJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录