c语言程序设计贪吃蛇报告,C语言“贪吃蛇”程序设计报告.doc

C语言“贪吃蛇”程序设计报告

山东交通学院

C语言课程设计

贪吃蛇游戏编程

院(系)别 信息工程系

班 级

学 号

姓 名

指导教师

时 间 2011-03-28—2011-04-01

课 程 设 计 任 务 书

题 目 贪吃蛇游戏编程

系 (部) 信息工程系

专 业

班 级

学生姓名

学 号

03 月 28 日至 04 月 01 日 共 1 周

指导教师(签字)

系 主 任(签字)

年 月 日

一、设计内容及要求

贪吃蛇游戏是一个经典小游戏,本设计分为三个等级。一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时等级为1计1分,等级为2计2分,等级为3计3分。接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

二、设计原始资料

C语言程序设计和应用三、设计完成后提交的文件和图表

见正文内容四、进程安排

第一天:选择课题,认真分析。

第二~三天:查找资料,利用学过的知识初步编程。

第四~五天:写好源代码,进行调试.

第六天:整理代码,完善代码.

第七天:答辩.

五、主要参考资料

《语言程序设计》(谭浩强 清华大学出版社)C语言程序设计高等教育出版社C语言程序设计C语言程序设计C语

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的贪吃蛇程序的C语言代码: ``` #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define WIDTH 20 #define HEIGHT 20 int x, y, fruitX, fruitY, score, gameover; int tailX[100], tailY[100], nTail; enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN }; enum eDirection dir; void Setup() { gameover = 0; dir = STOP; x = WIDTH / 2; y = HEIGHT / 2; fruitX = rand() % WIDTH; fruitY = rand() % HEIGHT; score = 0; } void Draw() { system("cls"); for (int i = 0; i < WIDTH + 2; i++) printf("#"); printf("\n"); for (int i = 0; i < HEIGHT; i++) { for (int j = 0; j < WIDTH; j++) { if (j == 0) printf("#"); if (i == y && j == x) printf("O"); else if (i == fruitY && j == fruitX) printf("F"); else { int print = 0; for (int k = 0; k < nTail; k++) { if (tailX[k] == j && tailY[k] == i) { printf("o"); print = 1; } } if (!print) printf(" "); } if (j == WIDTH - 1) printf("#"); } printf("\n"); } for (int i = 0; i < WIDTH + 2; i++) printf("#"); printf("\n"); printf("Score: %d\n", score); } void Input() { if (_kbhit()) { switch (_getch()) { case 'a': dir = LEFT; break; case 'd': dir = RIGHT; break; case 'w': dir = UP; break; case 's': dir = DOWN; break; case 'x': gameover = 1; break; } } } void Logic() { int prevX = tailX[0]; int prevY = tailY[0]; int prev2X, prev2Y; tailX[0] = x; tailY[0] = y; for (int i = 1; i < nTail; i++) { prev2X = tailX[i]; prev2Y = tailY[i]; tailX[i] = prevX; tailY[i] = prevY; prevX = prev2X; prevY = prev2Y; } switch (dir) { case LEFT: x--; break; case RIGHT: x++; break; case UP: y--; break; case DOWN: y++; break; default: break; } if (x >= WIDTH) x = 0; else if (x < 0) x = WIDTH - 1; if (y >= HEIGHT) y = 0; else if (y < 0) y = HEIGHT - 1; for (int i = 0; i < nTail; i++) if (tailX[i] == x && tailY[i] == y) gameover = 1; if (x == fruitX && y == fruitY) { score += 10; fruitX = rand() % WIDTH; fruitY = rand() % HEIGHT; nTail++; } } int main() { Setup(); while (!gameover) { Draw(); Input(); Logic(); Sleep(50); } return 0; } ``` 希望这个代码对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值