贪吃蛇.docx
- 文档编号:10529502
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:14
- 大小:19.80KB
贪吃蛇.docx
《贪吃蛇.docx》由会员分享,可在线阅读,更多相关《贪吃蛇.docx(14页珍藏版)》请在冰点文库上搜索。
贪吃蛇
成绩评定表
学院
信息科学与工程学院
专业
计算机科学与技术
姓名
班级学号
生产实习题目
贪吃蛇游戏
评
语
组长签字:
成绩
日期
2014年11月7日
生产实习任务书
学院
信息科学与工程学院
专业
计算机科学与技术
学生姓名
班级学号
生产实习题目
贪吃蛇游戏
生产实习的要求与任务:
要求:
结合自己平时的学习与实习地点,实习老师的要求,深入了解计算机编程语言的特掉,并根据自己的偏向,选择一种自己擅长的编程语言,自己定制题目,在实习老师的指导下,完成一个项目的开发。
任务:
制作一个贪吃蛇游戏,能够控制蛇的移动方向,能够吃苹果,吃完苹果蛇要变长,能够实时显示游戏画面。
工作计划与进度安排:
第一天:
去东软集团参观
第二天:
在学校上相关的课程,并作练习
第三天:
去沈阳宝石金卡有限公司参观
第四天:
在学校上相关的课程,并作练习
第五天:
在学校上相关的课程,并作练习
第六天:
完成最终的作业,提交
指导教师:
2014年10月20日
专业负责人:
2014年10月20日
学院教学副院长:
2014年10月21日
目录
一、实习目的4
二、实习计划4
三、实习内容4
四、详细设计5
五、收获和体会12
一、实习目的
生产实习是培养本科生实践能力的主要教学环节,对于促进理论联系实际、了解学科专业发展现状、增强实践动手能力、提高学生综合素质具有十分重要的作用。
1.通过接触实际、了解社会,使学生对本专业生产、设计和相关研究课题等建立感性认识。
2.巩固所学理论知识,同时获得生产实际知识和技能,学习先进的生产技术和企业组织管理知识,培养分析和解决工程实际问题的初步能力。
3.了解社会和国情,直接向工人和工程技术人员、管理人员学习各种相关的实践知识,增强劳动观念,培养学生事业心和责任感,为今后走向社会打下良好的基础。
二、实习计划
1.进行为期一周的生产实习,这期间首先主要是先参观相关公司,了解企业文化。
2.之后安排相关的课程,在课程的学习中,进行相关的练习。
3.最后通过相关课程的学习,独立完成最终的生产实习任务。
三、实习内容
由企业进行相关培训,项目培训采取分组方式,模拟真是软件项目开发模式,采取讲授与实践结合方式,使学生能够学以致用,获得项目实践经验。
要求学生初步掌握计算机系统开发过程、可行性分析、用户需求分析、概要设计、详细设计、开发技术和开发环境、编码、测试方法和技术、编码规范、质量控制、各类相关文档的编写和管理等,及涉及到的相关技术、结构设计、开发的组织管理、测试等方面;了解实际产品的实际内容,分析产品的工作原理。
掌握数据库系统、信息系统工程、网络工程的设计、规划和建设及相关标准和政策;质量的控制和验收方法及相关规范。
四、详细设计
4.1定义头文件
使用头文件来进行宏定义、函数声明,把多个编译单元(mian.cpp和snake.cpp)公用的内容,单独放在一个文件里减少整体代码尺寸;
#ifndefSNAKE_H
#defineSNAKE_H//为了防止在一个编译单元内部头文件重复引用,所有头文件都要加上
#include
#include
#include
#include
#defineMAX100//数组最大长度
#defineWALL_HIGH20//墙高
#defineWALL_WIDTH40//墙宽
#defineSNAKE_ORIG_LENTH5//蛇的初始长度
#defineSNAKE_ORIG_HEAD_Y(WALL_HIGH/2)//蛇的初始位置
#defineSNAKE_ORIG_HEAD_X(WALL_WIDTH/2)//蛇的初始位置
#defineSNAKE_STEP_TIME_MS1000//蛇的移速
constcharvername[MAX]="贪食蛇";//游戏名称
intgame_init(void);//游戏初始化
intdis_init(void);
voidprot_dis_init(constchar*title,unsignedintconsole_width,unsignedintconsole_high);
intgame_control_loop(void);//游戏循环控制
staticintstart_game(void);//开始游戏
intdis_buf_update(void);//输出缓冲
voidclear(void);//清屏
voidclean_inputbuf(void);//清空输入缓存
voidprot_locate(shortx,shorty);//定位
voidprot_delay_ms(unsignedintms);//延迟
intdis_output(void);//输出
intsnake_init(void);//创造蛇
intsnake_change_head(charp);//改变方向
intsnake_move(void);//蛇的移动
inteat_apple(void);//吃苹果
#endif
4.2主函数
#include"snake.h"
intmain()
{
game_init();
game_control_loop();
return0;
}
4.3游戏初始化
intgame_init(void)
{
dis_init();
return0;
}
intdis_init(void)
{
prot_dis_init(vername,WALL_WIDTH*2+1,WALL_HIGH+4);
return0;
}
voidprot_dis_init(constchar*title,unsignedintconsole_width,unsignedintconsole_high)
{
charstr[100];
sprintf_s(str,100,"modeconcols=%dlines=%d",console_width,console_high);
system(str);
sprintf_s(str,100,"title%s",title);
system(str);
//other
system("colorf4");
}
intsnake_init(void)
{
unsignedinti;
structsnake_code*cur_code=NULL;
snake.snake_head=(structsnake_code*)malloc(sizeof(structsnake_code));
snake.snake_head->next=NULL;
snake.snake_head->pos.x=SNAKE_ORIG_HEAD_X;
snake.snake_head->pos.y=SNAKE_ORIG_HEAD_Y;
snake.next_pos.x=snake.snake_head->pos.x+1;
snake.next_pos.y=snake.snake_head->pos.y;
cur_code=snake.snake_head;
for(i=0;i cur_code->next=(structsnake_code*)malloc(sizeof(structsnake_code)); cur_code=cur_code->next; cur_code->pos.x=snake.snake_head->pos.x-1*(i+1); cur_code->pos.y=snake.snake_head->pos.y; } cur_code->next=NULL; apple_pos.x=int(WALL_WIDTH*0.7); apple_pos.y=int(WALL_HIGH/2); return0; } 4.4游戏运行 intgame_control_loop(void) { charch=0; start_game(); return0; } staticintstart_game(void) { clear(); snake_init(); dis_output(); while (1) { prot_delay_ms(500); charch=''; if(! _kbhit()) { snake.next_pos.x=2*snake.snake_head->pos.x-snake.snake_head->next->pos.x; snake.next_pos.y=2*snake.snake_head->pos.y-snake.snake_head->next->pos.y; } elseif(_kbhit()) { ch=_getch(); snake_change_head(ch); } if(eat_apple()) { structsnake_codep1; p1.pos=snake.next_pos; p1.next=snake.snake_head; snake.snake_head=&p1; dis_output(); } else { snake_move(); dis_output(); } } return0; } inteat_apple(void) { if(apple_pos.x==snake.next_pos.x&&apple_pos.y==snake.next_pos.y) return1; else return0; } intsnake_change_head(charp) { switch(p){ case'w': if(snake.next_pos.y==snake.snake_head->pos.y){ snake.next_pos.y=snake.snake_head->pos.y-1; snake.next_pos.x=snake.snake_head->pos.x; } break; case's': if(snake.next_pos.y==snake.snake_head->pos.y){ snake.next_pos.y=snake.snake_head->pos.y+1; snake.next_pos.x=snake.snake_head->pos.x; } break; case'd': if(snake.next_pos.x==snake.snake_head->pos.x){ snake.next_pos.x=snake.snake_head->pos.x+1; snake.next_pos.y=snake.snake_head->pos.y; } break; case'a': if(snake.next_pos.x==snake.snake_head->pos.x){ snake.next_pos.x=snake.snake_head->pos.x-1; snake.next_pos.y=snake.snake_head->pos.y; } break; } return0; } intsnake_move() { structsnake_code*p1=NULL,*p2=NULL; p1=snake.snake_head; p2=snake.snake_head; while(NULL! =p1->next) {p2=p1; p1=p1->next; } p2->next=NULL; p1->next=snake.snake_head->next; snake.snake_head->next=p1; p1->pos=snake.snake_head->pos; snake.snake_head->pos=snake.next_pos; return0; } 4.5显示游戏 intdis_buf_update(void) { unsignedintm,n; structsnake_code*cur_code=snake.snake_head; //CLEAR for(m=0;m for(n=0;n dis_buffer[m][n]=''; //WALL for(m=0;m dis_buffer[m][0]='#'; dis_buffer[m][WALL_HIGH-1]='#'; } for(n=0;n dis_buffer[0][n]='#'; dis_buffer[WALL_WIDTH-1][n]='#'; } while(NULL! =cur_code){ dis_buffer[cur_code->pos.x][cur_code->pos.y]='o'; cur_code=cur_code->next; } dis_buffer[snake.snake_head->pos.x][snake.snake_head->pos.y]='&'; //APPLE dis_buffer[apple_pos.x][apple_pos.y]='@'; return0; } voidclear(void) { system("cls"); } voidclean_inputbuf(void) { fflush(stdin); } voidprot_locate(shortx,shorty) { COORDpos={0,0}; HANDLEhout; hout=GetStdHandle(STD_OUTPUT_HANDLE); pos.X=x; pos.Y=y; SetConsoleCursorPosition(hout,pos); } voidprot_delay_ms(unsignedintms) { Sleep(ms); } intdis_output(void) { unsignedintm,n; dis_buf_update(); prot_locate(0,0); printf("欢迎\n"); for(n=0;n for(m=0;m putchar(dis_buffer[m][n]); putchar(''); } printf("\n"); } return0; } 五、收获和体会 通过本次认识实习,自己了解了计算机软件开发的基础知识,开阔了眼界,增加了见闻,明白了一些软件开发的简单步骤,也明白了目前该行业的最新发展,把平时书本的知识应用在了实践中,自己得到了很多宝贵的知识财富,另一面自己也看见了自己的不足,还需要努力学习,了解更多相关知识,丰富自己的阅历,多请教老师,和有关人员,通过各个渠道学习和了解计算机的有关知识,相信自己的明天一定会更加美好,灿烂! ! ! ! 实训过程是繁琐的,但同学们都表现得很积极,不怕课程难,相互帮助一起分析。 任课老师也非常认真负责,耐心讲解,细心指导,一点一点解答同学们的疑惑,直到同学们理解了为止。 在实训中,分析、讨论、演算,机房里充满了浓浓的学习气氛。 此次实训培养了同学们耐心的工作作风,增强了同学们的合作意识,提高了大家的应用分析能力。 最后,通过本次实训,我使自己许多不足之处得到了弥补,真正收获到了自己想要学习的东西。 真正的获得了一些关于计算机软件开发的一些经验。 通过这次的实习,我学习到了很多从前没有接触过的知识,使我眼界打开,感受颇深。 基本的动手能力是一切工作和创造的基础和必要条件。 对于计算机我也有了新的认识,以前只知道玩游戏、娱乐和简单的应用。 通过这次的实训,我了解到,要真真正正的掌握计算机程序还不是一件简单容易的事儿,但真正掌握后,它带个我们的将是无穷的便捷与科技,我喜欢高端便捷的生活。 “纸上得来终觉浅,绝知此事要躬行! ”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到十分的难过。 在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪吃
![提示](https://static.bingdoc.com/images/bang_tan.gif)