骇客代码雨

article/2025/7/13 3:16:48

以下代码实现了代码雨的一些基本功能

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>#define XMAX 150
#define YMAX 35
#define RAINLINES 50char *str = "ki)udm+nh*&(^%cobpwerxz$#@<>?}{";struct Rainpoint
{char ch;int x;int y;
};struct Rainline
{struct Rainpoint point[YMAX];int start;int length;
};struct Rainline rainline[RAINLINES];void SetWindow();
void SetColor(int n);
void hide();
void init_rainline();
void gotoxy(int x, int y);
void display();
void update();int main()
{SetWindow();SetColor(2);hide();init_rainline();while (1){display();update();};return 0;
}void SetWindow()
{SetConsoleTitleA("骇客代码雨");system("mode con cols=150 lines=35");
}void SetColor(int n)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), n);
}void hide()      //隐藏光标函数调用。
{CONSOLE_CURSOR_INFO CURSORINFO = { 1,0 };SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &CURSORINFO);
}void init_rainline()
{int i, j;srand((unsigned)time(NULL));for (i = 0; i < RAINLINES; i++){rainline[i].start = rand() % YMAX / 2 + 4;rainline[i].length = rand() % YMAX / 2 + 3;for (j = 0; j < YMAX; j++){rainline[i].point[j].x = i;rainline[i].point[j].y = j;if (rainline[i].start < rainline[i].length){if (j < rainline[i].start){rainline[i].point[j].ch = str[rand() % strlen(str)];}else{rainline[i].point[j].ch = ' ';}}else{if (j<rainline[i].start&&j>(rainline[i].start - rainline[i].length)){rainline[i].point[j].ch = str[rand() % strlen(str)];}else{rainline[i].point[j].ch = ' ';}}}}
}void display()
{int i, j;for (i = 0; i < RAINLINES; i++){for (j = 0; j < YMAX; j++){gotoxy(i * 3, j);putchar(rainline[i].point[j].ch);}}
}void gotoxy(int x, int y)
{COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}void update()
{int i, j;for (i = 0; i < RAINLINES; i++){rainline[i].start++;if (rainline[i].start > YMAX){rainline[i].start = YMAX;rainline[i].length--;}if (rainline[i].length == 0){rainline[i].start = rand() % YMAX / 2 + 4;rainline[i].length = rand() % YMAX / 2 + 3;}for (j = 0; j < YMAX; j++){if (rainline[i].start < rainline[i].length){if (j < rainline[i].start){rainline[i].point[j].ch = str[rand() % strlen(str)];}else{rainline[i].point[j].ch = ' ';}}else{if (j<rainline[i].start&&j>(rainline[i].start - rainline[i].length)){rainline[i].point[j].ch = str[rand() % strlen(str)];}else{rainline[i].point[j].ch = ' ';}}}}
}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/E7LI6KI9.shtml

相关文章

C++实现代码雨

各位博友们&#xff0c;大家好&#xff0c;今天给大家打一个代码雨 接下来是代码 #include <stdio.h> #include <time.h> #include <Windows.h> #include <graphics.h>#define WIDTH 960 #define HEIGHT 640 #define STR_SIZE 20 #define STR_NUM 128…

网页实现黑客帝国代码雨

网页实现黑客帝国代码雨 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"/><title>黑客帝国代码雨 </title><style type"text/css"> /*basic reset*/ *{margin:0;padding:0;} body{background:black;} ca…

Python实现代码雨效果

Python实现代码雨效果 main.py代码&#xff1a; """功能&#xff1a;代码雨效果作者&#xff1a;指尖魔法师QQ&#xff1a;14555110 """ import pygame import randomdef main():# 初始化pygamepygame.init()# 默认不全屏fullscreen False# …

酷炫黑客代码雨

大家看到这要说切scratch谁不会呀&#xff01; 我要说&#xff1a;退退退&#xff01; 话不多.................好了再见 代 码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>黑客帝国代码雨</title><st…

经典代码雨----C语言实现

代码架构&#xff1a; 1、初始化窗口&#xff08;窗口大小信息&#xff09; 2、描绘雨点信息&#xff08;颜色&#xff0c;数字&#xff09; 3、初始化雨&#xff08;雨点位置变化&#xff09; 4、下雨操作&#xff08;坐标更新&#xff09; 5、更新窗口&#xff08;场景描…

学习编程的方法及入门

&#xff08;入门&#xff09;学习编程可以通过以下步骤进行&#xff1a; 1. 确定学习目标&#xff1a;首先&#xff0c;明确你希望学习编程的具体目标和用途。这有助于你选择学习的编程语言和方向&#xff0c;例如网页开发、移动应用开发或数据分析等。 2. 选择编程语言&…

怎么学习编程?小白如何入门?

前言 编程的范围实在很大&#xff0c;学什么就是小白的首要问题。如果是学编程希望能够将重复工作自动化这类朋友&#xff0c;直接学Python即可。下文会说怎么学习&#xff0c;本文主要针对的是想要通过编程高薪转行的这类人。 一、编程方向 编程可就业的技术岗位非常多&…

易语言编程入门教程学习

易语言是一款中文开发软件&#xff0c;因为是国人开发的&#xff0c;对于国人使用也是比较友好的。其最大的特点&#xff0c;就是易&#xff0c;容易的易&#xff0c;新手入门很容易。 易语言简介 易语言是一门以中文作为程序代码编程语言。以“易”著称。创始人为吴涛。早期版…

入门编程指南:如何从零开始学习编程?

一、自学编程需要注意什么&#xff1f; 自学编程需要注意以下几点&#xff1a; 选择适合自己的编程语言&#xff0c;在学习初期建议选择易入手的编程语言。需要不断地练习&#xff0c;并建立自己的编程项目&#xff0c;以此提高编程技巧和应用能力。追求知识的全面性&#xf…

编程入门不知道怎么学?程序员小白来给你支招

最近有很多朋友私信小编,说想学编程,但是自己基础不好,很多东西都不会,看视频,遇到难点,也不知道怎么解决,甚至有时候竟为了找错误,花了一上午或一下午的时间,作为过来人的小编,确实很明白这些朋友的心情,因为小编也经历过(在此抱抱做安慰,不怕,有我在)。 从互联…

vs2017官方下载地址

Visual Studio 2017 15.9 Release Notes | Microsoft Docshttps://download.microsoft.com/download/D/1/4/D142F7E7-4D7E-4F3B-A399-5BACA91EB569/vs_Community.exe

目前下载VS2017你可能会遇到这个坑

可能现在大伙都已经开始使用VS2019进行开发了。VS2019的下载使用也都很简单。由于工作需要&#xff0c;今天要在笔记本上安装VS2017,结果发现&#xff0c;VS2017的下载变得不是那么容易了&#xff0c;官方的下载方式也隐藏的很深&#xff0c;来来回回折腾了好一会才下载下来&am…

VS2017离线下载、安装教程

扣扣技术交流群&#xff1a;460189483 1. 制作Visual Studio 2017 (VS 2017) 离线安装包 Visual Studio 2017版本&#xff0c;由于版本更新速度加快和与第三方工具包集成的原因&#xff0c;微软研发团队没有为这个版本提供离线下载的安装文件。如果用户处在一个与外网隔离的网…

vs2017下载安装教程

同时给的在线安装程序&#xff0c;运行完一下界面就啥也没有了&#xff0c;没有然后了&#xff0c;网上重新下载的也不行&#xff0c; 如下界面&#xff1a; 最后可以用你的github账号登录微软的官网&#xff0c;下载即可安装&#xff0c;详见&#xff1a; https://baijiahao…

微软官网下载各版本VS的地址

每次重装系统后想安装VS&#xff0c;但是又不想装最新版的VS&#xff0c;于是乎上微软官网下某个版本的VS&#xff08;比如VS2017&#xff09;。但是问题来了&#xff0c;发现怎么找都找不到下载旧版本VS的地方&#xff0c;在总的搜索处搜索VS2017也不行。嘿&#xff0c;我还就…

BAT校招产品经理:52道经典面试问题解答思路

我始终认为&#xff0c;产品经理面试时极具“套路”的&#xff0c;相比较其他岗位&#xff0c;它更要求面试者有极强的随机应变能力&#xff0c;与冷静思考的能力。 那如何最快的&#xff0c;最高效率的&#xff0c;掌握这些套路&#xff0c;并且在面试中表现出自己的沉着&…

在阿里云服务器上部署java项目(四)

在所有原材料下载完成之后&#xff0c;我们去阿里云官方网站上去设置端口&#xff0c;百度搜索阿里云进入官方网站&#xff0c;登录账号密码之后点击控制台 点击我们已开通的云服务器 进入云服务器管理控制台后&#xff0c;会显示我们现有的云服务器&#xff0c;以及实例ID、…

将在线数据加载到阿里云Greenplum

本文说明如何设计一个 ETL 作业以便将在线关系数据库里的数据&#xff0c;加载到阿里云的Greenplum 数据库中&#xff0c;如何调度和监控该ETL 作业的日常运行。 本文使用的软件是开源ETL 工具软件 Kettle 5.x&#xff0c;以及基于Kettle的傲飞数据整合平台&#xff0c;该平台可…

年末阿里百度等大厂技术面试题汇总,书籍+视频+学习笔记+技能提升资源库

前言 最近有不少人问我这样一个问题&#xff1a;「我刚接触编程&#xff0c;准备学习下Android开发&#xff0c;但是担心现在市场饱和了&#xff0c;Android开发的前景怎么样&#xff1f;」 想着可能有很多人都有这样的担心&#xff0c;于是就赶紧写篇文章&#xff0c;来跟你…

Axure RP 9基础教程(3)——添加图标元件

上一节我们学习了如何对一个矩形元件设置交互样式&#xff0c;我们完成了将元件设计为按钮&#xff0c;实现了鼠标悬停的交互样式和单击界面跳转的交互效果。 其实我们完全可以让我们设置的界面更加的美观。比如csdn的创作界面&#xff1a; 我们可以看到&#xff0c;在每个热区…