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`文件。
893 2
|
存储 NoSQL Redis
redis set底层数据结构
set底层存储  redis的集合对象set的底层存储结构特别神奇,我估计一般人想象不到,底层使用了intset和hashtable两种数据结构存储的,intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)。
7013 0
|
11月前
|
存储 监控 数据挖掘
用CRM系统开启订单-回款自动化管理之旅
在现代企业管理中,CRM系统不仅是客户信息的存储库,更是提升运营效率的关键工具。通过订单到回款的自动化管理,CRM系统减少人为错误、提高响应速度、优化现金流。具体方法包括:订单管理自动化、回款跟踪自动化、财务与CRM集成、数据分析与报告,从而显著提升客户满意度和企业内部效率。CRM系统正成为推动企业持续发展的重要力量。
|
存储 监控 安全
邮件告警通知
【10月更文挑战第20天】
|
存储 索引 Python
dataframe学习知识总结
pandas DataFrame是Python中用于处理二维表格数据的重要数据结构,支持多种类型数据,提供丰富功能。可通过字典、列表或文件创建DataFrame,使用`.info()`、`.describe()`、`.head()`和`.tail()`查看数据信息。选择和过滤数据可按列名、行索引或条件进行。修改包括更新元素、列及添加/删除列。利用`.groupby()`和聚合函数进行分组分析,使用`.sort_values()`和`.rank()`排序,通过`.concat()`和`.merge()`合并数据。
398 3
|
安全 Unix 网络安全
你真的理解ssh吗?5分钟ssh入门到精通
这篇文章提供了SSH的基础知识、基础使用、高级配置方法,以及如何实现SSH的免密登录,帮助用户从入门到精通SSH。
1692 2
|
人工智能 算法 前端开发
怎么都在劝我用通义灵码
最近通义灵码有个活动,分享体验心得就有机会抽 iPhone 15。而且通过活动第一次使用通义灵码的新用户,还人均送一个“显眼包”。
|
开发工具 git
百度搜索:蓝易云【git常用命令stash详细解释。】
使用 `stash`命令可以在处理多个分支切换或者保存临时修改时非常有用。你可以通过 `stash`命令保存当前工作目录的修改,切换到其他分支或者应用其他更改,然后再返回并应用之前保存的stash。这样可以确保你的工作目录始终保持干净,并且不会丢失任何重要的修改。
555 4
|
前端开发 Java API
如何使用线上环境进行本地代码调试
如何使用线上环境进行本地代码调试
743 0
|
Linux 数据安全/隐私保护
第十四章、【Linux】磁盘配额与进阶文件系统管理
第十四章、【Linux】磁盘配额与进阶文件系统管理
277 0