




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
妙趣横生的C语言,授课者:赵佳授课班级:10E03,你玩过电脑游戏吗?,你喜欢电脑游戏吗?,电脑游戏是你生活中的一部分吗?,有的游戏改变过人的一生。,小时候,游戏是一台黑白的电视机现实在手柄的这头,梦境在手柄的那头。,长大后,游戏是一枚小小的铜币现实在摇杆的这头,梦境在摇杆的那头。,现在啊,游戏是一台多媒体电脑现实在鼠标的这头,梦境在鼠标的那头,当计算机技术给游戏提供了强有力的支持后,一个陌生而又似曾相识的新奇世界展示在人们面前。这里有逝去的童年梦想,有心头压抑已久的情感;有疯狂、神秘,也有脑力和技巧的挑战;有轻松获得实实在在的知识,也有用“虚拟”成就一个别样的人生。这不是一个神奇的世界吗?,游戏一:在迷宫中探索,小时侯,常在一些小人书和杂志上看见一些迷宫的游戏,非常喜欢玩,还常到一些书上找迷宫玩呢。好的,现在我们用C语言来编个迷宫的游戏,重温一下童年的乐趣。,好的,现在我们用一个二维数组map定义了一个非常酷的地图。如下:,charmap1020=#,#,#,#,#,#,#,#,#,#;,接着,我们用DrawMap函数把这个地图在屏幕上画出来。,voidDrawMap()intx=0,y=0;for(;y10;+y)for(x=0;x20;+x)if(mapyx=#)DrawWall(x,y);,还有,相信大家一定玩过“搬运工”的游戏吧!这是在电脑和电子字典上较流行的益智游戏,让我们动手做一个属于自己的“搬运工”吧!,游戏二:聪明的“搬运工”,程序依然用数组map来保存地图,数组元素如果为空格则表示什么也没有,b表示箱子,#表示墙壁,*表示目的地,i表示箱子在目的地。我们以后每推一下箱子,不但要改变屏幕的显示,也要改变map相应元素的值。,charmap1010=,#,#,#b#,#,#*#,#b*#,#b*#,#,;,游戏地图,游戏主循环,接受一个方向键后,判断人前面一格的状态,空地或目的地?,直接移动,墙壁?,不可移动,箱子或目的地上的箱子?,继续判断箱子的前面一格的状态,是否为空地或目的地?,推箱子,不可移动,程序还有一个重要的功能就是判断胜负。数组Des用来记录全部目的地的坐标,我们每执行一步操作后,程序就要通过Des数组判断这些目的地上是否都有箱子了。,for(i=0,count=0;desi.x!=-1;+i)/*清空count*/*如果发现游戏地图还有“目的地”没有箱子在上面,就让count+1。*/if(mapdesi.ydesi.x=*)+count;if(count=0)/*全部目的地上都有箱子了,你赢了!*/gotoxy(35,3);printf(Ok!youwin!);,好的,编游戏就这么简单呵呵,下面请大家进行思考一些趣味编程,分析一下它们的编程思想。,集思广益,下面,我们就来享受C语言给我们带来的乐趣吧!_,Hello,world,从,开始。,学习编程的第一个程序,一般就是打印一个亲切的词语“Hello,world!”。让我们来看看这个最简单的C程序:,#include/*把输入输出函数的头文件包含进来*/main()printf(“Hello,world!”);/*在屏幕上输出字符串“Hello,world!”*/,我们还希望屏幕输出一个笑脸来欢迎我们。,#includemain()clrscr();/*清屏函数*/printf(Hello,world!nn);_;,改进后的程序如下:,printf(“%c”,2)/*在屏幕上画一个笑脸,笑脸的ASCII码是2*/,趣味编程1属相图,?,输入一个人的年份,输出这一年出生人的属相,然后退出程序。,算法分析:,中国的属相从鼠开始,依次为:,鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪,12年一循环。,由于在程序设计时属相从猴开始便于编程,因此在程序中属相的编号如下:,猴0、鸡1、狗2、猪3、龙4、蛇5、马6、羊7、鼠8、牛9、虎10、兔11。,计算方法,用年份数除以12,取余数作为属相的编号,通过属相编号确定属相。如1949年用1949年用1949%12=5,这个5就是编号,对应的属相为“蛇”,则可以得出1949年出生的人属“蛇”。,思考:,这个问题可以选用选择结构中的哪种结构来实现呢?,多分支语句switch结构,注:用变量y=输入的年份变量x=某年的属相编号,编程:,case1:printf(“%d:jiniannn”,y);break;case2:printf(“%d:gouniann”,y);break;case3:printf(“%d:zhuniann”,y);break;case4:printf(“%d:shuniann”,y);break;case5:printf(“%d:niuniann”,y);break;,case6:printf(“%d:huniann”,y);break;case7:printf(“%d:tuniann”,y);break;case8:printf(“%d:longniann”,y);break;case9:printf(“%d:shouniann”,y);break;case10:printf(“%d:maniann”,y);break;case11:printf(“%d:yangniann”,y);break;,main()intx,y;,scanf(“%d”,x=y%12;,switch(x),case0:printf(“%d:houniann”,y);break;,怎么样?是不是很有趣呢?让我们继续往下学吧!,巩固练习:趣味编程加油站加油,某加油站有a、b、c3种汽油,售价分别为:3.75、3.25、2.75(元/千克)也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编程实现针对用户输入加油量x,汽油的品种y和服务的种类z,输出用户应付的金额。,main()floatx,m1,m2,m;chary,z;scanf(“%f,%c,%c”,怎么样,是不是C程序跟我们的日常生活贴的近啊,很有趣吧。下面我们再来看一个有关逻辑推理与判断的趣味题吧!,趣味编程2婚礼上的谎言,三对情侣参加婚礼,3个新郎为A、B、C,3个新娘为X、Y、Z,有人想知道谁和谁结婚,于是就问新人中的3位,得到如下提示:A说他将和x结婚;x说她的未婚夫是c;c说他将和z结婚。事后知道他们在开玩笑,说的全是假话。那么究竟谁和谁结婚呢?,新郎:ABC新娘:XYZ,解决本题的算法思想如下:,用“a=1”表示新郎a和新娘x结婚,同理如果新郎a和新娘x不结婚则写成“a!=1”所以有如下表达式:a!=1a不和x结婚c!=1c不和x结婚c!=3c不和z结婚,新郎:abc新娘:XYZ123,A说他将和x结婚;x说她的未婚夫是c;c说他将和z结婚。,用for语句对a、b、c所有情况进行穷举,main()inta,b,c;for(a=1;a=3;a+)for(b=1;b=3;b+)for(c=1;c=3;c+)if(_)printf(“%cwillmarrytoan”,_);printf(“%cwillmarrytobn”,_);printf(“%cwillmarrytocn”,x+c-1);,a!=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海船船员轮机考试题库及答案
- 贸易合同履行承诺书9篇范文
- 合同履行保障安排承诺函5篇
- 2025年国际经济法的基本理论与案例分析试题及答案
- 2025年新疆农业产业链合作合同协议
- 高速公司考试题目及答案
- 初一的月考试卷及答案
- 微积分下考试题目及答案
- 锐捷网络笔试测试题及答案
- 山东初一数学月考试卷及答案
- 《书愤》课件-【中职专用】高二语文(高教版2023职业模块)
- 邻里中心项目策划工作建议书框架及标准格式
- 人工智能通识 课件 第七章 智能之躯-具身智能
- 妈妈驿站加盟合同范本
- T/CUWA 60055-2023城镇排水管道螺旋缠绕内衬法修复用硬聚氯乙烯(PVC-U)带状型材
- DB62T 25-3016-2016 建筑工程资料管理规程
- 专题06 对角互补模型(原卷版)
- 2025勤工俭学合同范本
- 《职业生涯概述》课件
- 企业会计准则实施典型案例
- 混凝土路面裂缝修补施工方案
评论
0/150
提交评论