博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言——贪吃蛇(第二阶段小蛇的移动
阅读量:5023 次
发布时间:2019-06-12

本文共 2361 字,大约阅读时间需要 7 分钟。

#include
#include
#include
#define High 20 //游戏画面尺寸#define Width 30//全局变量tint canvas[High][Width] = {
0};int moveDirection;void gotoxy(int x, int y){ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(handle,pos);}void moveSneakeByDirection(){ int i,j; for(i = 1; i < High-1; i++) for(j = 1; j < Width-1; j++) if(canvas[i][j] > 0) canvas[i][j]++; int oldTail_i, oldTail_j, oldHead_i, oldHead_j; int max = 0; for(i = 1; i < High-1; i++) for(j = 1; j < Width-1; j++) if(canvas[i][j] > 0) { if(max < canvas[i][j]) { max = canvas[i][j]; oldTail_i = i; oldTail_j = j; } if(canvas[i][j] == 2) { oldHead_i = i; oldHead_j = j; } } canvas[oldTail_i][oldTail_j] = 0; if(moveDirection == 1) canvas[oldHead_i-1][oldHead_j] = 1; if(moveDirection == 2) canvas[oldHead_i+1][oldHead_j] = 1; if(moveDirection == 3) canvas[oldHead_i][oldHead_j-1] = 1; if(moveDirection == 4) canvas[oldHead_i][oldHead_j+1] = 1;}void startup() //数据初始化{ int i,j; //初始化边框 for(i = 0; i < High; i++) { canvas[i][0] = -1; canvas[i][Width-1] = -1; } for(j = 0; j < Width; j++) { canvas[0][j] = -1; canvas[High-1][j] = -1; } //初始化蛇头的位置 canvas[High/2][Width/2] = 1; //初始化蛇身,画布中的元素值分别为2,3,4,5等 for(i = 1; i <= 4; i++) canvas[High/2][Width/2-i] = i+1; moveDirection = 4;}void show() //显示画面{ gotoxy(0,0); int i,j; for(i = 0; i < High; i++) { for(j = 0; j < Width; j++) { if(canvas[i][j] == 0) printf(" "); else if(canvas[i][j] == -1) printf("#"); else if(canvas[i][j] == 1) printf("@"); //蛇头 else if(canvas[i][j] > 1) printf("*"); //蛇身 } printf("\n"); }}void updateWithoutInput() //与用户输入无关的更新{}void updateWithInput() //与用户输入有关的更新{}int main(){ startup(); while(1) { show(); updateWithoutInput(); updateWithInput(); } return 0;}

 

转载于:https://www.cnblogs.com/JAYPARK/p/10305185.html

你可能感兴趣的文章
windos7修复引导扇区
查看>>
Leetcode总结之Backtracking
查看>>
Android开发学习之路-图片颜色获取器开发(1)
查看>>
StackExchange.Redis 官方文档(一) Basics
查看>>
nupkg 之破解 nodejs+electron-packager 打包exe的解包
查看>>
Objective-C 使用 C++类
查看>>
浅谈之高级查询over(partition by)
查看>>
Notes: CRM Analytics–BI from a CRM perspective (2)
查看>>
graphite custom functions
查看>>
列出所有的属性键
查看>>
js获取请求地址后面带的参数
查看>>
[原创]使用java批量修改文件编码(ANSI-->UTF-8)
查看>>
设计模式のCompositePattern(组合模式)----结构模式
查看>>
二进制集合枚举子集
查看>>
磁盘管理
查看>>
SAS学习经验总结分享:篇二—input语句
查看>>
UIImage与UIColor互转
查看>>
RotateAnimation详解
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>