关于用C实现繁星闪烁的问题

死磕unity 2017-10-18 11:18:06
最近老师让我们做一个用C语言实现繁星闪烁的小程序,想了一天,没啥思路,大牛们有啥思路吗
...全文
478 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-10-20
  • 打赏
  • 举报
回复
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
extern "C" HWND WINAPI GetConsoleWindow();
void HideTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

    if(GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = FALSE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
void ShowTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

    if(GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = TRUE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
int main() {
    HWND  hwnd;
    HDC   hdc;
    RECT  r;
    COLORREF c;

    int i,v;
    int x[20];
    int y[20];

    srand(time(NULL));
    system("color 07");
    system("cls");
    HideTheCursor();
    hwnd  = GetConsoleWindow();
    hdc   = GetDC(hwnd);
    GetClientRect(hwnd,&r);
    for (i=0;i<20;i++) {
        x[i]=rand()%r.right;
        y[i]=rand()%r.bottom;
    }
    while (1) {
        for (i=0;i<20;i++) {
            v=40+20*(rand()%11);
            c=(COLORREF)(v<<16|v<<8|v);
            SetPixel(hdc,x[i],y[i],c);
        }
        Sleep(100+rand()%200);
        if (kbhit()) {getch();break;}
    }

    ReleaseDC(hwnd,hdc);
    system("color 07");
    system("cls");
    ShowTheCursor();
    return 0;
}
CT8100 2017-10-20
  • 打赏
  • 举报
回复
用c语言?直接定义哥xy坐标,随机生成星辰坐标,然后在该坐标显示*之类的符号,然后每生成一边刷新一边就可以了。
ooolinux 2017-10-19
  • 打赏
  • 举报
回复
楼主如果想用C玩玩图形、小游戏编程,可以了解一下EasyX,EasyX是Windows平台最简单的绘图函数库(名副其实),兼容BC和TC的绘图函数,在VC下用EasyX来编程跟在TC下编程绘图差不多是完全一样的。EasyX既可以绘图,也支持图像显示和处理。 下载一个EasyX包,里面有完整的函数手册EasyX_Help.chm,有示例。EasyX官网有很多网友上传的实例,包括游戏。 仅供参考: 用绘图语句画机器猫(初学C语言的同学必看) http://blog.163.com/tab_98/blog/static/1192409720150316223680/
死磕unity 2017-10-18
  • 打赏
  • 举报
回复
图标隐藏是哪个函数
RedProgramer 2017-10-18
  • 打赏
  • 举报
回复
可以先绘制一个图,在其上增加一些图标,然后随机对这些图标进行隐藏和显示处理
自信男孩 2017-10-18
  • 打赏
  • 举报
回复
闪烁的可以考虑用随机性,行数和列数用随机值,这样可以做到随机某个点闪烁
大尾巴猫 2017-10-18
  • 打赏
  • 举报
回复
用printf或者cout之类的肯定不行 要用到windows控制台的API,比如SetConsoleCursorPosition设置光标位置,挺麻烦的,自己去搜索相关的资料吧。 具体思路是获取控制台屏幕的长度和宽度,随机产生一定数量的坐标,循环使得这些坐标显示或者擦除字符,时间也是随机

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧