首页 > 编程语言 >星空模拟程序

星空模拟程序

时间:2024-12-12 12:30:17浏览次数:5  
标签:星空 int csbi interval 模拟程序 input 控制台 闪烁

这个程序可以在控制台中模拟星空闪烁的效果,每次循环都会随机生成星星的位置并绘制,然后短暂停顿,给人以星空动态变化的感觉

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <conio.h> 

// 函数声明,用于获取控制台窗口的宽度
int getConsoleWidth();
// 函数声明,用于获取控制台窗口的高度
int getConsoleHeight();

// 绘制星星
void drawStar(int x, int y) {
    COORD coord = {x, y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    printf("*");
}

// 定义获取控制台窗口宽度的函数
int getConsoleWidth() {
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
    return csbi.dwSize.X;
}

// 定义获取控制台窗口高度的函数
int getConsoleHeight() {
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
    return csbi.dwSize.Y;
}

int main() {
    srand((unsigned int)time(NULL));
    int interval = 500;  // 星星闪烁间隔,单位毫秒,初始值为500
    int isPaused = 0;   // 标记程序是否暂停,0表示运行,1表示暂停
    char input;         // 用于接收用户输入的字符

    while (1) {
        if (!isPaused) {
            system("cls");
            // 使用函数获取控制台窗口高度,用于限制星星纵坐标范围
            int height = getConsoleHeight();
            // 使用函数获取控制台窗口宽度,用于限制星星横坐标范围
            int width = getConsoleWidth();
            for (int i = 0; i < 50; i++) {
                int x = rand() % width;
                int y = rand() % height;
                drawStar(x, y);
            }
            Sleep(interval);
        }

        // 检查是否有键盘输入
        if (_kbhit()) {
            input = _getch();
            if (input == 'p' || input == 'P') {
                isPaused =!isPaused;  // 切换暂停状态
                if (isPaused) {
                    system("cls");
                    printf("程序已暂停,按 P 键继续,按 + 或 - 键调整闪烁间隔,按 Q 键退出\n");
                }
            } else if (input == '+' && interval > 100) {
                interval -= 100;  // 减少闪烁间隔,加快闪烁速度
                printf("闪烁间隔调整为 %d 毫秒\n", interval);
            } else if (input == '-' && interval < 1000) {
                interval += 100;  // 增加闪烁间隔,减慢闪烁速度
                printf("闪烁间隔调整为 %d 毫秒\n");
            } else if (input == 'q' || input == 'Q') {
                break;  // 退出程序
            }
        }
    }

    return 0;
}

标签:星空,int,csbi,interval,模拟程序,input,控制台,闪烁
From: https://blog.csdn.net/2401_83381902/article/details/144423595

相关文章

  • 金蝶云星空热更新
    第一步:创建项目第二步:点击开发后,选择项目然后右键选择搭建开发环境,版本号一定要一致第三步:开发环境搭建好后,创建插件创建VS插件时,要将位置更改到❌\WorkSpace\xxxx\xxxxxxx\Code\里面创建插件成功后,先更改输出路径写完代码后注册,绑定完成后启动开发环境就可以测试看效果......
  • 实现金蝶云星空到MySQL数据集成的技术方案
    金蝶云星空数据集成到MySQL的技术案例分享在企业信息化系统中,数据的高效流转和准确对接是业务流程顺畅运行的关键。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,将金蝶云星空的数据无缝集成到MySQL数据库中。此次案例的实际运行方案为“zzcx-金蝶查询组装......
  • 数据集成案例:旺店通与金蝶云星空的无缝对接
    案例分享:旺店通·企业奇门数据集成到金蝶云星空在现代企业的运营中,数据的高效流动和准确同步是确保业务顺利进行的关键。本文将聚焦于一个具体的系统对接集成案例——如何通过轻易云数据集成平台实现旺店通·企业奇门的数据无缝同步到金蝶云星空。此次集成方案被命名为“仓库同......
  • 如何实现退货数据在聚水潭与金蝶云星空间的无缝集成
    如何实现退货数据在聚水潭与金蝶云星空间的无缝集成聚水潭退货入库单与金蝶云星空销售退货单的系统对接集成案例在企业日常运营中,数据的高效流转和准确处理是确保业务顺利进行的关键。本文将分享一个实际运行的系统对接集成案例:如何通过轻易云数据集成平台,将聚水潭的退货入......
  • 金蝶云星空批改单据体字段
    #引入clr运行库importclr#添加对cloud插件开发的常用组件的引用clr.AddReference('System')clr.AddReference('System.Data')clr.AddReference('Kingdee.BOS')clr.AddReference('Kingdee.BOS.Core')clr.AddReference('Kingdee.BOS.App'......
  • 金蝶云星空与新宝平台数据集成提升生产效率
    金蝶云星空与新宝平台数据集成提升生产效率金蝶云星空与新宝-产业链协同平台的数据集成案例分享在现代制造业中,数据的高效流动和精准对接是实现智能化生产的重要基础。本文将聚焦于一个具体的系统对接集成案例:如何通过轻易云数据集成平台,将金蝶云星空中的生产订单数据无缝......
  • 火车售票模拟程序(java)
    问题描述】设计一个多线程程序:火车售票模拟程序。假如火车站有10张火车票要卖,现在有5个销售点同时售票,用5个线程模拟这5个售票点的售票情况。【输入形式】1或2【输出形式】sale:10sale:9sale:8sale:7sale:6sale:5sale:4sale:3sale:2sale:1Threadpackagedati;im......
  • 金蝶云星空——采购订单新变更单
    目录0.背景1.从采购订单查询相关的数据2.创建采购订单新变更单的JSON格式参数3.关于新变更单未生效版本的查询4.其他说明0.背景采购订单新变更单,不是通过下推创建的,而是通过业务操作-->修改变更进行创建的注意:若是采购订单中:业务查询按钮下没有:变更查询,则需要到“采购管......
  • 钉钉样机归还申请数据无缝集成到金蝶云星空
    钉钉样机归还申请数据无缝集成到金蝶云星空钉钉数据集成到金蝶云星空:Done-钉钉-样机归还申请——>金蝶-其他出库单在企业信息化管理中,数据的高效流转和精准对接是提升业务效率的关键。本文将分享一个具体的系统对接集成案例,即如何通过轻易云数据集成平台,将钉钉中的“样机归......
  • 高效数据集成:旺店通转金蝶云星空案例分析
    旺店通·企业奇门数据集成到金蝶云星空的技术案例分享在现代企业的运营过程中,数据的高效流转和精准对接是提升业务效率的重要环节。本文将重点介绍如何通过轻易云数据集成平台,将旺店通·企业奇门的数据无缝集成到金蝶云星空系统中,实现其他入库单的高效管理。本次集成方案命名为......