版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、你玩过电脑游戏吗? 你喜欢(x huan)电脑游戏吗?电脑游戏是你生活(shnghu)中的一部分吗?第1页/共36页第一页,共36页。有的游戏改变过人(u rn)的一生。第2页/共36页第二页,共36页。 小时候, 游戏是一台黑白的电视机现实(xinsh)在手柄的这头,梦境在手柄的那头。第3页/共36页第三页,共36页。 长大后, 游戏是一枚小小的铜币(tn b)现实在摇杆的这头,梦境在摇杆的那头。第4页/共36页第四页,共36页。现在啊,游戏(yux)是一台多媒体电脑现实在鼠标的这头,梦境在鼠标的那头第5页/共36页第五页,共36页。 当计算机技术给游戏提供了强有力的支持后,一个陌生而又似曾
2、相识的新奇世界展示在人们面前。这里有逝去的童年梦想,有心头压抑已久的情感;有疯狂、神秘(shnm),也有脑力和技巧的挑战;有轻松获得实实在在的知识,也有用“虚拟”成就一个别样的人生。这不是一个神奇的世界吗?第6页/共36页第六页,共36页。C语言优秀(yuxi)的计算机语言 C语言对于计算机科学来说是一种非常重要的语言,也是最受欢迎的语言之一。它具有(jyu)功能强大、适用范围广、运算符简洁明了等优点。很多系统软件就是C语言开发的,比如UNIX和我们耳熟能详的Windows系统。现在要开发好的应用软件,离不开“C语言家族”(包括:VC+、VC#、C+ build等)。有人说:初学的程序员用VB
3、、聪明的程序员用delphi、而真正的程序员用VC。从这句话也可以看出C语言的重要性。第7页/共36页第七页,共36页。下面,我们(w men)就用编游戏来学习C语言吧!_第8页/共36页第八页,共36页。总是(zn sh)从开始(kish)。第9页/共36页第九页,共36页。 学习编程的第一个程序,一般就是打印一个亲切的词语(cy)“Hello,world!”。让我们来看看这个最简单的C程序:第10页/共36页第十页,共36页。#incolude /*把输入输出函数的头文件包含进来(jn li)*/int main()printf(“Hello, world!”);/*在屏幕上输出字符串“H
4、ello,world!”*/return 0;/*退出main函数,并返回0*/第11页/共36页第十一页,共36页。 我们发现几个值得改进的地方,1、程序的运行(ynxng)结果一闪而过。2、每执行这个程序一次都能看见上次运行(ynxng)留下的字符。3、我们还希望屏幕输出一个笑脸来欢迎我们。 第12页/共36页第十二页,共36页。#include #include /*使用了clrscr和getch函数*/int main()clrscr();/*清屏函数*/printf(Hello, world!nn);printf(“%c”,2); /*在屏幕上画一个笑脸,笑脸的ASCII码是2 */
5、getch();/*接受(jishu)按键,按任意键结束这个程序*/return 0;改进(gijn)后的程序如下:第13页/共36页第十三页,共36页。心动的开始一个(y )运动中的笑脸第14页/共36页第十四页,共36页。大家小时(xiosh)侯喜欢看动画片吗? 那么我请问大家,动画和图片的最大区别(qbi)是什么? 没有错,动画之所以有趣,是因为它是会动的,对不对?好的,现在我们就让屏幕显示一个会自己移动(ydng)的笑脸。是啊,动画片那么有趣,谁不喜欢呢? 运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段距离,再画出该物体。让我们看到以下代码:第15页/共36页第十五页,共3
6、6页。程序开头,我们定义了一个在屏幕中运动的点的结构类型(lixng): struct move_pointint x, y;/*该点的位置,包括x坐标和y坐标*/int xv, yv;/*该点在x轴、y轴的速度*/;1、擦去物体原来的轨迹:gotoxy(man.x, man.y);/*把光标移到指定的坐标*/printf(“ “);/*输出一个空格,把先前的字符(z f)擦去*/2、然后我们让物体按其速度运动:man.x += man.xv;/*水平方向按x轴的速度运动*/man.y += man.yv;/*垂直方向按y轴的速度运动*/3、最后打印出这个笑脸:gotoxy(man.x, ma
7、n.y);printf(“%cb”, 2); /*输出ASCII码值为2的“笑脸”字符(z f)*/第16页/共36页第十六页,共36页。 运动后还要判断(pndun)物体是否出界,如果出了界,就令物体反弹,即让它下一刻的速度等于现在的速度的相反数。 好的,让我们看以下代码:if (man.x = 80 | man.x = 25 | man.y = 0)man.yv = -man.yv;让将要出界(ch ji)的物体“弹”回出。第17页/共36页第十七页,共36页。怎么样?是不是很有趣呢?不过(bgu)这个笑脸一直是自己运动,能不能让我们来控制它运动呢?答案是肯定的,让我们继续往下学吧!第18
8、页/共36页第十八页,共36页。的开始(kish)让我们来控制笑脸(xiolin)运动!第19页/共36页第十九页,共36页。 这个程序的主要功能是接受按键,如果接收的是方向键,就让笑脸顺着方向移动,如果接收的是ESC键就退出(tuch)程序,其他按键则忽略处理。 接受按键我们用了bioskey函数,并且用宏定义(dngy)了一些键盘码,如下:#define ESC 0 x011b#define UP 0 x4800#define DOWN 0 x5000#define LEFT 0 x4b00#define RIGHT 0 x4d00让我们(w men)来看游戏的主循环:第20页/共36页第
9、二十页,共36页。接受(jishu)按键接受(jishu)按键ESC键?判断(pndun)按键退出游戏上下左右键?执行相关操作无效按键?忽略处理第21页/共36页第二十一页,共36页。While (key != ESC)while (bioskey(1) = 0);/*等待按键(n jin)*/key = bioskey(0);/*把接收的按键(n jin)的键盘码赋给变量key*/switch (key) /*对变量key的值进行判断*/case UP: /*如果按的是向上键*/ break; /*让物体向上运动,并退出switch*/case DOWN: /*如果按的是向下键*/ brea
10、k; /*让物体向下运动,并退出switch*/case LEFT: /*向左键*/ break;/*向左运动*/case RIGHT: /*向右键*/ break;/*向右运动*/default:break;/*其他按键(n jin)则忽略处理*/第22页/共36页第二十二页,共36页。 怎么样,是不是有了玩游戏的感觉了?不过(bgu)这个程序没有什么目的,也没有什么判断胜负的条件。下面我们就利用这个能控制它移动的笑脸来做一个更有趣的游戏吧! 第23页/共36页第二十三页,共36页。游戏一:在 迷宫(mgng) 中探索第24页/共36页第二十四页,共36页。小时侯,我常在一些小人书和杂志上看
11、见一些迷宫的游戏,非常喜欢玩,还常到一些书上找迷宫玩呢。好的,现在我们用C语言来编个迷宫的游戏,重温一下(yxi)童年的乐趣。 好的,现在我们用一个(y )二维数组map定义了一个(y )非常酷的地图。如下:char map1020 =#,# # #,# # # # #,# # # #,# # # # # # #,# # # # # # #,# # # # # #,# # # # # #,# # #, #;第25页/共36页第二十五页,共36页。 接着,我们用DrawMap函数把这个(zh ge)地图在屏幕上画出来。void DrawMap()int x = 0, y = 0;for (; y
12、 10; +y)for (x=0; x 20; +x)if (mapyx = #)DrawWall(x, y);第26页/共36页第二十六页,共36页。在判断按键时,如果玩家按的是方向键,我们(w men)还要先判断前面是不是有“墙壁”,如果有的话,就不能往前移动了。好的,我们(w men)在判断按键的switch语句的各个分支加上了判断语句,如下:case UP:if (mapman.y - 1man.x = #) break;/*如果人前面是墙壁,就不执行下去*/* 否则让人向上移动*/break;人不能穿过(chun u)墙壁!第27页/共36页第二十七页,共36页。在main函数里,我
13、们定义了“小人”man的坐标(zubio)和“目的地”des的坐标(zubio)。在游戏循环中,我们增加了一些用来判断胜负的语句:if (man.x = des.x & man.y = des.y) /*如果人的坐 标等于目的地的坐标(zubio)*/gotoxy(35, 3);printf(“Ok! You win!”); /*输出胜利信息*/./*执行退出前的其他操作。*/判断(pndun)玩家是否到达目的地:第28页/共36页第二十八页,共36页。OK!这个“迷宫”的游戏我们已经编好了!下面,我们编一个更好玩的游戏推箱子!第29页/共36页第二十九页,共36页。游戏(yux)二:
14、聪明的“搬运工”第30页/共36页第三十页,共36页。 大家一定玩过“搬运工”的游戏吧!这是在电脑和电子字典上较流行的益智游戏,让我们动手做一个(y )属于自己的“搬运工”吧! 第31页/共36页第三十一页,共36页。程序依然(yrn)用数组map来保存地图,数组元素如果为空格则表示什么也没有,b表示箱子,#表示墙壁,*表示目的地,i表示箱子在目的地。我们以后每推一下箱子,不但要改变屏幕的显示,也要改变map相应元素的值。 char map1010 = , #, # #, # b #, # # #, # # # *#, # # b *#, # b *#, #, ;游戏(yux)地图第32页/共36页第三十二页,共36页。游戏(yux)主循环接受(jishu)一个方向键后判断人前面(qin mian)一格的状态空地或目的地?直接移动墙壁?不可移动箱子或目的地上的箱子?继续判断箱子的前面一格的状态是否为空地或目的地?是推箱子否不可移动第33页/共36页第三十三页,共36页。程序还有一个重要的功能就是(jish)判断胜负。数组Des用来记录全部目的地的坐标,我们每执行一步操作后,程序就要通过Des数组判断这些目的地上是否都有箱子了。 for (i=0, count=0; desi.x != -1; +i) /*清空count*/*如果发现(fxin)游戏地图还有“目的地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能在工业自动化领域的应用前景
- 紧急医疗物资调配与储备指南
- 知识产权保护与管理策略
- 电脑网络设备的故障诊断与处理手册
- 大规模数据存储与处理技术研究
- 眼科激光治疗设备质量控制指南
- 技术在教育中的应用与学业提升
- 理赔专员绩效管理计划
- 历史文物与文化遗产保护方法论
- 城市社区的传染病风险评估与应对
- 2023年二级造价师《建设工程计量与计价实务(交通运输工程)》考试题库大全(含详解)
- 2023版思想道德与法治专题1 担当复兴大任 成就时代新人
- 婚礼当天详细流程
- 热工与流体力学基础习题集(答案)
- GB/T 8629-2001纺织品试验用家庭洗涤和干燥程序
- GB/T 33598-2017车用动力电池回收利用拆解规范
- 电视节目导播-串讲课件
- 配网设计基础知识培训88课件
- 《教育管理学》课件
- 2023年湖南生物机电职业技术学院单招综合素质考试笔试题库及答案解析
- 每日食品安全检查记录、安全排查治理报告、安全调度会议纪要(示例)
评论
0/150
提交评论