贪吃蛇代码-C语言-VC++60.doc_第1页
贪吃蛇代码-C语言-VC++60.doc_第2页
贪吃蛇代码-C语言-VC++60.doc_第3页
贪吃蛇代码-C语言-VC++60.doc_第4页
贪吃蛇代码-C语言-VC++60.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*这是一个贪吃蛇代码,运行环境vc+6.0(亲测完美运行)*/*该程序在dos系统下运行,不需要graphics.h头文件*/*该程序由c语言小方贡献,谢谢您的支持*/#include #include #include #include #include #include #define n 21int apple3;char score3;char tail3; void gotoxy(int x, int y) /输出坐标 coord pos; pos.x = x; pos.y = y; setconsolecursorposition(getstdhandle(std_output_handle), pos);void color(int b) /颜色函数 handle hconsole = getstdhandle(std_output_handle) ; setconsoletextattribute(hconsole,b) ; int block(char head2) /判断出界 if (head0 n) | (head1 n) return 1; return 0;int eat(char snake2) /吃了苹果 if (snake0 = apple0) & (snake1 = apple1) apple0 = apple1 = apple2 = 0; gotoxy(n+44,10); color(13); printf(%d,score0*10); color(11); return 1; return 0;void draw(char *snake, int len) /蛇移动 if (apple2) gotoxy(apple1 * 2, apple0); color(12); printf(); color(11); gotoxy(tail1 * 2, tail0); if (tail2) color(14); printf(); color(11); else printf(); gotoxy(snake01 * 2, snake00); color(14); printf(); color(11); putchar(n);char* move(char *snake, char dirx, int *len) /控制方向 int i, full = eat(snake0); memcpy(tail, snake(*len)-1, 2); for (i = (*len) - 1; i 0; -i) memcpy(snakei, snakei-1, 2); switch (dirx) case w: case w: -snake00; break; case s: case s: +snake00; break; case a: case a: -snake01; break; case d: case d: +snake01; break; default: ; if (full) snake = (char *)realloc(snake, sizeof(char *) * (*len) + 1); snake(*len) = (char *)malloc(sizeof(char) * 2); memcpy(snake(*len), tail, 2); +(*len); +score0; if(score3 16) +score3; tail2 = 1; else tail2 = 0; return snake;void init(char platen+2n+2, char *snake_x, int *len) /初始化 int i, j; char *snake = null; *len = 3; score0 = score3 =3; snake = (char *)realloc(snake, sizeof(char *) * (*len); for (i = 0; i *len; +i) snakei = (char *)malloc(sizeof(char) * 2); for (i = 0; i 3; +i) snakei0 = n/2 + 1; snakei1 = n/2 + 1 + i; for (i = 1; i = n; +i) for (j = 1; j = n; +j) plateij = 1; apple0 = rand()%n + 1; apple1 = rand()%n + 1; apple2 = 1; for (i = 0; i n + 2; +i) gotoxy(0, i); for (j = 0; j n + 2; +j) switch (plateij) case 0: color(12);printf();color(11); continue; case 1: printf(); continue; default: ; putchar(n); for (i = 0; i score0) gotoxy(10,10); color(12); puts(闯关失败 加油耶); gotoxy(0,n+2); return 0; if(fp = fopen(c:tcs.txt,w+) = null) printf(文件不能打开n); exit(0); if(fputc(-score0,fp)=eof) printf(输出失败n); gotoxy(10,10); color(12); puts(恭喜您打破记录); gotoxy(0,n+2); return 0;void free(char *snake, int len) /释放空间 int i; for (i = 0; i len; +i) free(snakei); free(snake);int main(void) int len; char ch = g; char an+2n+2 = 0; char *snake; srand(unsigned)time(null); color(11); file_in(); init(a, &snake, &len); manual(); while (ch != 0x1b) / 按 esc 结束 draw(snake, len); if (!apple2) apple0 = rand()%n + 1; apple1 = rand()%n + 1; apple2 = 1; sleep(200-score3*10); setbuf(stdin, null); if (kbhit() gotoxy(0, n+2); ch = getche(); snake =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论