EasyX—数字雨

 1 /////////////////////////////////////////////////////////////////////
 2 // 程序名称:数字雨
 3 // 编译环境:VC6.0  EasyX
 4 // 作  者:flx413
 5 // 时    间:2016-5-2
 6 /////////////////////////////////////////////////////////////////////
 7
 8 #include <stdio.h>
 9 #include <windows.h>
10 #include <graphics.h>
11 #include <stdlib.h>
12 #include <time.h>
13
14 #define SCREEN_WIDTH 1366
15 #define SCREEN_HEIGHT 768
16 #define DEF_RAIN_NUM 91  //雨的列数
17
18 //数字雨开始的位置
19 int g_nRainPos[DEF_RAIN_NUM] = { 0 };
20
21 //数字雨的字符串
22 char g_strRain[DEF_RAIN_NUM][10] = { 0 };
23
24 //随机产生一个字母
25 char CreateRandomNum() {
26     char nRandomNum = 0;
27
28     while( 1 ) {
29         nRandomNum = rand() % 123;   //随机产生0~122的一个字符
30
31         if( ( nRandomNum >= 65 && nRandomNum <= 90 ) || nRandomNum >= 97 ) {
32             return nRandomNum;
33         }
34     }
35 }
36
37 //随机产生数字雨的开始位置
38 void InitPos() {
39     for( int i = 0; i < DEF_RAIN_NUM; i++ ) {
40         g_nRainPos[i] = rand() % SCREEN_HEIGHT;
41     }
42 }
43
44 //初始化数字雨
45 void InitNumRain() {
46     for( int i = 0; i < DEF_RAIN_NUM; i++ ) {
47         for( int j = 0; j < 10; j++ ) {
48             g_strRain[i][j] = CreateRandomNum();
49         }
50     }
51 }
52
53 //显示雨
54 void ShowNumRain() {
55     for( int i = 0; i < DEF_RAIN_NUM; i++ ) {
56         //设置字体颜色
57         settextcolor( RGB( 255, 255, 255 ) );  //白色
58         for( int j = 0; j < 10; j++ ) {
59             outtextxy( i * 15, g_nRainPos[i] - 15 * j, g_strRain[i][j] );
60             settextcolor( RGB( 0, 255 - 28 * j, 0 ) );
61         }
62     }
63
64     for( i = 0; i < DEF_RAIN_NUM; i++ ) {
65         g_nRainPos[i] += 15;    //屏幕刷新后雨的位置下降15
66     }
67
68     for( i = 0; i < DEF_RAIN_NUM; i++ ) {
69         if( g_nRainPos[i] - 10 * 15 >= SCREEN_HEIGHT ) {
70             g_nRainPos[i] = 0;
71         }
72     }
73 }
74 int main() {
75     srand((unsigned)time(NULL));
76     initgraph( SCREEN_WIDTH, SCREEN_HEIGHT );
77
78     InitPos();
79     InitNumRain();
80
81     BeginBatchDraw();
82
83     while( 1 ) {
84        InitNumRain();
85        ShowNumRain();
86        FlushBatchDraw();
87        Sleep( 100 );   //延时0.1秒
88        cleardevice();  //清空屏幕
89     }
90
91     EndBatchDraw();
92     closegraph();
93     return 0;
94 }

截图:

时间: 2024-08-27 12:58:22

EasyX—数字雨的相关文章

Linux数字雨

<黑客帝国>电影里满屏幕代码的"数字雨",在 Linux 里面你也可以轻松实现这样的效果,你只需要一个命令 cmatrix . 需要先安装,因为 Ubuntu 没有预装: $ sudo apt-get update;sudo apt-get install cmatrix 装好之后先不要急着执行,为了看到更好的效果,我们需要先修改终端的主题配色,修改为黑底绿字,修改方法:在终端上右键,选择profile preference 然后选择 color,将背景设置为黑色,将tex

Java实现黑客帝国数字雨效果

偶然看见黑客帝国里面的一个数字雨的效果,感觉很炫,于是写个代码模仿下.效果图如下 效果很简陋,没做过多修饰,直接上代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.image.MemoryIma

Linux实验一

一.Linux 简介 实验介绍 本节主要介绍 Linux 的历史,Linux 与 Windows 的区别等入门知识.如果你已经有过充分的了解,可以跳过本节,直接进入下一个实验. 一.Linux 为何物 Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍下操作系统在整个计算机系统中的角色. 我们的 Linux 也就是系统调用和内核那两层,当然直观的

第一次实验报告

实     验    报     告 课程:信息安全系统设计基础  班级:1353 姓名:黎静  学号:20135338 成绩:             指导教师:娄嘉鹏    实验日期:2015.9.20 实验密级:         预习程度:         实验时间:10:00--22:00 仪器组次:29         必修/选修: 选修            实验序号:1~12 第一次实验部分截图 一.Linux 简介 实验介绍 本节主要介绍 Linux 的历史,Linux 与 Wi

5233杨光--Linux第一次实验

学习计时:共14小时 读书:2小时 代码:7小时 作业:2小时 博客:3小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 4. 熟练应用“搜索”进行举一反三的学习 二.学习资源 1. 课程资料:https://www.shiyanlou.com/courses/413   实验一,课程邀请码:W7FQKW4Y 2. Lin

实验一 Linux初步认识

遇到的困难和心得体会: 1.在操作过程中,有道作业是建立一个opt/forloutest的文件,而我建立了一个 OPT文件,cd OPT,却显示not a directory,通过阅读<linux嵌入式>这本书使用mkdir创建目录,可能是因为OPT文件的存在,并不能创建新的目录 与网上得搜索,了解应建立OPT文件夹,而不是文件. 2.同上,在建立fortest这个文件的时候,不小心按了两次touch fortest,列出文件的时候,发现建了两个forloutest文件,修改访问权限得时候,哪

C#.NEt-GDI+中的Pen测试

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; //1366*768 namespace PaintTest1 { pu

linux学习笔记入门之环境变量和文件查找

环境变量与文件查找 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值.字符或者字符串等等数据类型.Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可

1.5环境变量与文件查找(学习过程)

环境变量与文件查找 实验介绍 本节实验介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录