145.艺术清屏

简介: 145.艺术清屏
#include<stdio.h>
#include<dos.h>
#include<conio.h>
void goto_xy(int x,int y);
void dcls(int x1,int x2,int y1,int y2);
void bcls(int x1,int x2,int y1,int y2);
void recls(int x1,int x2,int y1,int y2);
void zcls(int x1,int x2,int y1,int y2);
void puta(void);
/*--------------演示程序---------------------*/
main()
{
    puta();
    getch();
    dcls(0,4,0,79);
    getch();
    puta();
    getch();
    bcls(0,25,0,79);
    getch();
    puta();
    getch();
    zcls(0,25,0,79);
    getch();
}
/*********center clear screen(中心清屏)***********/
void zcls(int x1,int x2,int y1,int y2)
{
    int x00,y00,x0,y0,i,d;
    if((y2-y1)>(x2-x1)){
  d=(x2-x1)/2;
  x0=(x1+x2)/2;
  y0=y1+d;
  y00=y2-d;
  for(i=0;i<(d+1);i++)
      recls((x0-i),(x00+i),(y0-i),(y00+i));
    }
    else{
  d=(y2-y1)/2;
  y0=(y1+y2)/2;
  x0=x1+d;
  x00=x2-d;
  for(i=0;i<d+1;i++)
      recls(x0-i,x00+i,y0-i,y00+i);
    }
}
/************* clear rectangle side(矩形边清屏)***********************/
void recls(int x1,int x2,int y1,int y2)
{
    int i,j;
    for(i=y1;i<y2;i++){
  goto_xy(x1,i);
  putchar(' ');
  goto_xy(x2,i);
  putchar(' ');
    }
    for(j=x1;j<x2;j++){
  goto_xy(i,y1);
  putchar(' ');
  goto_xy(j,y2);
  putchar(' ');
    }
}
/*****************close screen clear*****闭幕式清屏*******************/
void bcls(int x1,int x2,int y1,int y2)
{
    int t,s,j;
    t=y1;
    s=y2;
    for(t=y1;t<(y1+y2)/2;t++,s--)
    for(j=x1;j<x2;j++){
  goto_xy(j,t);
  putchar(' ');
  goto_xy(j,s);
  putchar(' ');
  delay(1);
    }
}
/******************bottom screen clear(自下清屏)********************/
void dcls(int x1,int x2,int y1,int y2)
{
    int t,s,j,i;
    t=s=(y1+y2)/2;
    for(j=x2;j>x1;j--)
    for(i=y1;i<y2;i++){
  goto_xy(j,i);
  putchar(' ');
  delay(1);
    }
}
/******************设置光标子函数******************/
void goto_xy(int x,int y)
{
    union REGS r;
    r.h.ah=2;
    r.h.dl=y;
    r.h.dh=x;
    r.h.bh=0;
    int86(0x10,&r,&r);
}
/**********************在屏幕上打出一连串的@字母用于演示程序******************/
void puta(void)
{
    int i,j;
    for(i=0;i<24;i++){
  for(j=0;j<79;j++){
      goto_xy(i,j);
      printf("@");
  }
    }
}
相关文章
|
缓存 Linux
lscpu命令详解
`lscpu` 是Linux系统下用于显示CPU架构和相关详情的命令,帮助用户了解处理器配置,适用于性能诊断、系统调优和软件部署规划。输出包括架构(如x86_64或ARM)、操作模式、字节顺序、CPU核心和线程信息、NUMA节点等。选项如 `-a` 显示所有CPU信息,`-b` 和 `-c` 分别显示在线和离线CPU信息。信息来源包括sysfs和`/proc/cpuinfo`文件。
713 2
|
存储 NoSQL Redis
redis set底层数据结构
set底层存储  redis的集合对象set的底层存储结构特别神奇,我估计一般人想象不到,底层使用了intset和hashtable两种数据结构存储的,intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)。
6714 0
|
8月前
|
存储 监控 数据挖掘
用CRM系统开启订单-回款自动化管理之旅
在现代企业管理中,CRM系统不仅是客户信息的存储库,更是提升运营效率的关键工具。通过订单到回款的自动化管理,CRM系统减少人为错误、提高响应速度、优化现金流。具体方法包括:订单管理自动化、回款跟踪自动化、财务与CRM集成、数据分析与报告,从而显著提升客户满意度和企业内部效率。CRM系统正成为推动企业持续发展的重要力量。
|
10月前
|
存储 监控 安全
邮件告警通知
【10月更文挑战第20天】
|
存储 索引 Python
dataframe学习知识总结
pandas DataFrame是Python中用于处理二维表格数据的重要数据结构,支持多种类型数据,提供丰富功能。可通过字典、列表或文件创建DataFrame,使用`.info()`、`.describe()`、`.head()`和`.tail()`查看数据信息。选择和过滤数据可按列名、行索引或条件进行。修改包括更新元素、列及添加/删除列。利用`.groupby()`和聚合函数进行分组分析,使用`.sort_values()`和`.rank()`排序,通过`.concat()`和`.merge()`合并数据。
302 3
|
12月前
|
安全 Unix 网络安全
你真的理解ssh吗?5分钟ssh入门到精通
这篇文章提供了SSH的基础知识、基础使用、高级配置方法,以及如何实现SSH的免密登录,帮助用户从入门到精通SSH。
1446 2
|
Python
【Python 训练营】N_18 插入排序
【Python 训练营】N_18 插入排序
63 0
|
前端开发 Java API
如何使用线上环境进行本地代码调试
如何使用线上环境进行本地代码调试
692 0
|
存储 Oracle 关系型数据库
MySql存储过程游标循环问题解决过程
MySql存储过程游标循环问题解决过程
331 0
|
JSON 前端开发 测试技术
postman如何通过json数据进行测试
postman如何通过json数据进行测试
postman如何通过json数据进行测试