c语言编写控制台聊天程序,如何让你的C语言编写的程序在控制台上产生动画效果...

可能大家也发现了,在我们使用C语言编写程序的时候,一般我们只能打印一个画面,那么,如何在不涉及ui的基础上,只用C语言在控制台上让你的代码动起来的,下面我将给大家介绍一个方法:

首先,在我讲代码实现之前, 我想先介绍一下原理,大家都知道动画片的原理,为什么能出现连续的动画呢?因为它在连续不断的播放画面,好了,那么基于这个,我们可以得出只要我们能够连续的让我们的打印函数不断的执行,那么我们就可以得到我们想要的效果.

明白了这些,肯定有好多人已经迫不及待的去尝试了,使用一个for循环或者while的一个循环开始不停的让打印函数调用,如果我没猜错的话,你肯定没有达到理想的效果,这是为什么呢?下面我们来分析一下.

对于现在的计算机来说,运行速度是非常快的,如果我们直接使用一个简单的循环,然后在循环里不停的执行打印函数,那么,计算机会飞速的进行运算执行,这个时间是非常短的,所以我们在控制台上得到的效果就会有一种卡顿的现象,也就是画面不流畅,那么如何解决这个问题呢?我们可以使用一个延时函数.

好了,延时函数,顾名思义,就是用来延长时间的,我们让电脑在执行这个函数的时候消耗一定的时间,这样我们就可以在两次打印之间进行延时,就可以很好的解决出现的卡顿现象.

函数如下:

void _delayTime(){

for(int i = 0;i < 300; i ++){

for(int j = 0;j < 1000;j++)

}

}

好了这个就是我们的延时函数了,很显然,我们套用了for循环,但是执行的是空语句,里面的参数我们可以根据我们需要的实际延时效果自行调整,很明显,这里,电脑执行了300*1000次的运算,这样会消耗一定的时间,大概有0.5s左右,这样的话我们把这个延时函数放在两次打印之间,那么我们就可以得到我们想要的效果

下面我给大家附上一个我自己写的小程序,实现的是让一个小球自己转动,大家可以把我的代码复制下来去运行一下,也可以自己敲一下,并且我希望大家能从这里延伸出一些其他好玩的程序出来,毕竟玩着学习更有乐趣.

#include

int x=1,y=1;

char tem=' ';

char road='*';

char snake='o';

int flag=1;

int o=1,k=1;

char map[6][10]={

{'*','*','*','*','*','*','*','*','*','*'},

{'*',' ',' ',' ',' ',' ',' ',' ',' ','*'},

{'*',' ',' ',' ',' ',' ',' ',' ',' ','*'},

{'*',' ',' ',' ',' ',' ',' ',' ',' ','*'},

{'*',' ',' ',' ',' ',' ',' ',' ',' ','*'},

{'*','*','*','*','*','*','*','*','*','*'}

};

void delay_Time(){

for(int i=0;i<200;i++){

for(int j=0;j<100000;j++);

}

}

void print_Map(char arr[6][10]){

for(int i=0;i<6;i++){

for(int j=0;j<10;j++){

printf("%c",arr[j]);

}

printf("\n");

}

}

void snake_Move(char arr[6][10],int x,int y){

while(flag){

void delay_Time();

x=o;

y=k;

if(x==1&&y+1!=9){

arr[o][k]=tem;

arr[o][++k]=snake;

delay_Time();

print_Map(map);}else if(x!=4&&y==8){

arr[o][k]=tem;

arr[++o][k]=snake;

delay_Time();

print_Map(map);

}else if (x==4&&y!=1){

arr[o][k]=tem;

arr[o][--k]=snake;

delay_Time();

print_Map(map);

}else if (y==1&&x!=1){

arr[o][k]=tem;

arr[--o][k]=snake;

delay_Time();

print_Map(map);

}

}

}

int main(int argc, const char * argv[]) {

snake_Move(map, x, y);

}

后面我还会给大家写一个使用这个来编写的一个小游戏,希望大家能继续支持!

made by Answer.Zhao

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值