5分钟学会!C语言数字雨教程:黑客帝国既视感!

5分钟学会!C语言数字雨教程:黑客帝国既视感!

关注《一碳科技》,每天都有干货哦!


5分钟学会!C语言数字雨教程:黑客帝国既视感!

黑客帝国数字雨

各位小伙伴有没有看过黑客帝国里面的数字雨,是不是觉得很神奇?我相信大多数人都想在现实生活中体验一下“数字雨”吧,现在菜鸟君就来教大家用C语言来制作一场“数字雨”,这个数字雨和黑客帝国里面的数字雨非常的像,各位小伙伴可以拿着这个“数字雨”程序和其他朋友尽情的耍帅啦!

5分钟学会!C语言数字雨教程:黑客帝国既视感!

数字雨实战

用C语言制作数字雨无非就是按照某种规律在屏幕上打印出一串串数字,我们要做的就是这种规律给想出来然后才能写出数字雨代码。

小编的思路是这样的,在最外层使用一个while()循环,然后每个120ms就进行依次循环。在while循环的里面还有一层for循环,for循环用来生成100个数字0和数字1的组合,0和1垂直于X轴竖直排列。在for循环里面每循环一次就将01组合下移到下一行,然后在当前光标位置的上5行(y-5)的位置输出一个空格,这样以此类推就会呈现一串数字在屏幕上向竖直方向移动的效果了,这个和下雨的效果非常的像。

5分钟学会!C语言数字雨教程:黑客帝国既视感!

这个程序实现的方法和细节用文字是很难表达出来的,如果上面的思路看不懂,各位小伙伴可以获取源码,一遍看思路一遍对照着源码就会明白了。

重点:

在这个程序中我们需要将光标隐藏起来,只有这样才会使我们的数字雨更加的好看,那个光标就是下图中的那个↓

5分钟学会!C语言数字雨教程:黑客帝国既视感!

去除光标将会使用到SetConsoleCursorInfo()、GetConsoleCursorInfo()、GetStdHandle()函数,第一个函数用来按照指定的格式取设置光标,第二个函数用来检索有关指定的控制台屏幕缓冲区的光标的可见性和大小信息,第三个函数用来获取控制台屏幕缓冲区的句柄,这三个函数结合起来就可以将光标隐藏起来了。

CONSOLE_CURSOR_INFO这个结构体存放了我们获取到的光标信息,里面有光标的高度、是否显示等信息,具体可以查阅资料,代码如下图,里面没有很难的地方,大家别怕,只是函数名称长了一点而已。

5分钟学会!C语言数字雨教程:黑客帝国既视感!

控制光标位置

我们会用到 GetStdHandle()函数和 SetConsoleCursorPosition()函数,第一个函数用来获取控制台屏幕缓冲区的句柄,参数直接填STD_OUTPUT_HANDLE就可以了,第二个函数有两个参数,第一个是HANDLE类型的参数,第二个是COORD结构体,COORD结构体储存的就是光标的位置信息,光标在哪里我们就会在哪里输出,而我们通过设置光标的位置我们可以控制数字输出的位置,这就可以实现数字雨了。

注意上面的SetConsoleCursorPosition()和SetConsoleCursorInfo()函数是不同的哦,前者用来设置位置,后者用来设置样式。

利用循环生成数字串

具体生成方法已经在文章开头说过,所以这里就不做过多阐述了。

5分钟学会!C语言数字雨教程:黑客帝国既视感!

代码获取方式

关注《一碳科技》然后点赞该文章,私信关键字:数字雨源码,即可获取源码。


分享到:


相關文章: