当前位置: 首页 > news >正文

电子商务网站建设步骤百度文库组服务器做网站

电子商务网站建设步骤百度文库,组服务器做网站,阿里云营销网站建设,免费百度广告怎么投放利用空余时间写出了这么一个简单的小游戏#xff0c;直接使用dos界面运行。那么问题来了#xff0c;如何让一个字符在dos界面上自由移动#xff1f;#xff1f;#xff1f;对于这个问题我采用的解决方案是实现gotoxy函数来控制指针位置从而实现字符的移动。那么我们就先来… 利用空余时间写出了这么一个简单的小游戏直接使用dos界面运行。那么问题来了如何让一个字符在dos界面上自由移动对于这个问题我采用的解决方案是实现gotoxy函数来控制指针位置从而实现字符的移动。那么我们就先来实现这个函数。gotoxy 函数并非系统函数我将其储存于 gotoxy.h 的头文件中方便调用。gotoxy.h#include lt;windows.hgt; void gotoxy(int x,int y) { COORD pos; pos.X x - 1; pos.Y y - 1; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); }现在我们已经能够利用 gotoxy 函数对指针进行控制那么实现字符的移动则只需将原来位置的字符清除然后利用此函数移动指针到想去的坐标后打印字符即可。在对此函数进行测试的时候我发现了一个重要的问题因为代码是一行一行的运行那么在等待我输入方向的时候其他代码是无法执行的这意味这我的蛇只能是我给一下方向它移动一下那么该如何使得字符在等待我输出方向的同时自行移动呢对于这个问题有两个解决方案一、创建线程对于当时的我来说线程还很陌生 二、利用 kbhit() 非阻塞函数百度一下你就知道。当然我选择的是第二个方案再配合使用 getch() 函数即可完美实现方向的输入。该游戏的两个难点都解决了话不多说 ↓这里主要运用到的知识有这些结构体srand(), rand(), kbhit(), getch(), Sleep()./*******************http://blog.csdn.net/lcsy000**********************/ #includelt;iostreamgt; #includegotoxy.h #includelt;windows.hgt; #includelt;conio.hgt; #includelt;time.hgt; using namespace std; char direction_a,direction_b; //方向a、b,用于方向的限制 int scores,num,fool_x,fool_y,speed100; //得分、num用于蛇身起步、食物x坐标、食物y坐标 bool end; //结束标记 struct node //蛇身结点 { int x,y; node *next; }*headNULL,*p,*tail; void init(); //初始化开始界面 void start(); //游戏开始入场 void init_snake(); //初始化蛇身 void delete_snake(); //删除蛇身 void control(); //方向控制 void move(); //蛇身移动 void limit(); //方向限制 void panduan(); //配合limit限制方向 void fool(); //食物的出现以及食物被吞 void isEnd(); //结束判断 void zhuangwei(); //撞尾判断 void zhuangqiang(); //撞墙判断 int main () { srand((unsigned)time(NULL)); init(); cingt;gt;direction_a; if(direction_a!yamp;amp;direction_a!Y) return 0; do { system(cls); //清除屏幕 endfalse; start(); delete_snake(); init_snake(); scores0; num0; fool_x(rand() % (79-21)) 2; fool_y(rand() % (22-21)) 2; gotoxy(fool_x,fool_y); coutlt;lt;0; direction_agetch(); while(direction_a!damp;amp;direction_a!samp;amp;direction_a!w) direction_agetch(); while(true) { if(numamp;amp;direction_a!damp;amp;direction_a!samp;amp;direction_a!wamp;amp;direction_a!a) { direction_adirection_b; } control(); fool(); Sleep(speed); if(kbhit()) //kbhit 非阻塞函数 { direction_agetch(); //使用 getch 函数获取键盘输入 limit(); } panduan(); num1; zhuangqiang(); zhuangwei(); if(end) break; } }while(direction_ay||direction_aY); return 0; } void init() { gotoxy(35,8); coutlt;lt;★贪 吃 蛇★; gotoxy(36,10); coutlt;lt;开始请输入y:; } void start() { for(int i0;ilt;79;i) { Sleep(10); coutlt;lt;*; gotoxy(i1,24); coutlt;lt;*; gotoxy(i2,1); } gotoxy(1,2); for(int i0;ilt;21;i) { Sleep(20); coutlt;lt;*; for(int j0;jlt;77;j) coutlt;lt; ; coutlt;lt;*; } } void init_snake() { int n3; headnew node; tailhead; head-gt;x40; head-gt;y12; while(n--) { pnew node; tail-gt;nextp; p-gt;xtail-gt;x-1; p-gt;ytail-gt;y; tailp; } tail-gt;nextNULL; node *qhead-gt;next; gotoxy(head-gt;x,head-gt;y); coutlt;lt;#; while(q!NULL) { gotoxy(q-gt;x,q-gt;y); coutlt;lt;*; qq-gt;next; } } void delete_snake() { while(head!NULL) { node *qhead; headq-gt;next; delete q; } } void move() { gotoxy(tail-gt;x,tail-gt;y); coutlt;lt; ; gotoxy(head-gt;next-gt;x,head-gt;next-gt;y); coutlt;lt;*; gotoxy(head-gt;x,head-gt;y); coutlt;lt;#; node *qtail; tailhead; while(tail-gt;next!q) { tailtail-gt;next; } tail-gt;nextNULL; delete q; } void control() { node *qnew node; q-gt;nexthead; q-gt;xhead-gt;x; q-gt;yhead-gt;y; headq; switch(direction_a) { case w: head-gt;y--;break; case s: head-gt;y;break; case a: head-gt;x--;break; case d: head-gt;x;break; default : break; } move(); } void limit() { if(direction_bsamp;amp;direction_aw) direction_as; if(direction_bwamp;amp;direction_as) direction_aw; if(direction_baamp;amp;direction_ad) direction_aa; if(direction_bdamp;amp;direction_aa) direction_ad; } void panduan() { if(direction_as) direction_bs; if(direction_aw) direction_bw; if(direction_ad) direction_bd; if(direction_aa) direction_ba; } void fool() { node *q; if(head-gt;xfool_xamp;amp;head-gt;yfool_y) { fool_x(rand() % (79-21)) 2; fool_y(rand() % (22-21)) 2; gotoxy(fool_x,fool_y); coutlt;lt;0; num0; scores; node *qnew node; q-gt;xtail-gt;x; q-gt;ytail-gt;y; tail-gt;nextq; tailq; tail-gt;nextNULL; } qhead; while(q!NULL) { if(q-gt;xfool_xamp;q-gt;yfool_y) { fool_x(rand() % (79-21)) 2; fool_y(rand() % (22-21)) 2; gotoxy(fool_x,fool_y); coutlt;lt;*; qhead; continue; } qq-gt;next; } } void isEnd() { endtrue; Sleep(600); system(cls); gotoxy(35,8); coutlt;lt;您 输 啦 ~; gotoxy(33,10); coutlt;lt;您的分数为: lt;lt;scores; gotoxy(31,12); coutlt;lt;重新开始请输入y:; cingt;gt;direction_a; } void zhuangwei() { node *qhead-gt;next; while(q!NULL) { if(head-gt;xq-gt;xamp;amp;head-gt;yq-gt;y) { isEnd(); break; } qq-gt;next; } } void zhuangqiang() { if(head-gt;x80||head-gt;x1||head-gt;y24||head-gt;y1) isEnd(); }效果图由于考虑到游戏的各种 BUG 故自定义函数很多有兴趣的朋友可以自行改动一些函数对比效果。完它不仅仅是一个码扫码关注C资源免费送
http://wiki.neutronadmin.com/news/29922/

相关文章:

  • 有做lol直播网站网站建设推广的软文
  • 云南省建设工程质量监督管理站网站专业的网络推广
  • 如何看到网站的制作公司四川建设网官网电话
  • 汕头网站建设技术托管土地流转网站建设项目
  • 福州seo公司网站asp.net网站开发教程
  • 企业网站个人可以备案吗网站 布局
  • 动易网站首页制作全屋定制十大名牌有哪些品牌
  • 怎么做网站服务器系统红番茄 网站点评
  • 网站设计规划方案做药材生意的网站
  • Wordpress数据怎么导出seo sem是什么职位
  • wordpress 歌词爱站seo
  • 做网站是不是很麻烦2024年楼市大局已定
  • 江门搜狗网站推广优化上海怎样建设网站
  • 网站建设推广报价安装wordpress教程
  • 门户网站建站目标顶呱呱做网站吗
  • 网站建设和维护要点广东省住房和建设网站
  • 滨州市住房和城乡建设局网站天水模板型网站建设
  • 谷歌网站为何打不开phpcms 视频网站模板下载
  • 网站业务员好做吗国家企业信息公示系统官网河南
  • 网站admin密码wordpress改地址错误
  • 河南企业网站建设价格站长工具seo综合查询降级
  • 河北网站开发报价如何做视频网站
  • 黑龙江省建设安全网站易语言 做的网站
  • 山东省工程建设招标信息网站成都市建设局网站
  • 音乐网站建设成本域名升级系统自动更新
  • 公司主页网站制作东莞市建设网站培训
  • 韩国flash网站网络彩票网站开发
  • 中学生免费作文网站网站建设的编程语言
  • 网站怎么做seo收录手机网站改版公司加盟
  • 建设360导航网站的目的是什么建站行业发展前景