




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计 课程设计题 目: 俄罗斯方块 系 别: 数计系 专业(含班级): 09计应 学 号: 20090821103 姓 名: 江和椿 指导教师: 王红雨 职称 讲师 填表日期: 2010 年 01 月 22 日一、 选题的依据及意义:依据自定义函数的利用,结合循环结构、数组、结构体还有点指针与文件只是进行编译。通过对学生选课管理系统的操作来进一步掌握和利用C语言进行设计的能力;不仅可以练习而且积累经验逐渐培养编程能力。二、 本课程设计内容俄罗斯方块提示:(1)可能要用的函数:int kbhit( )函数用于判断是否有按键,若有返回非零值,否则返回零。在conio.h中定义。int bioskey(int cmd);返回按键扫描码和ASCII码,VC6.0中不能用。在bios.h中定义。TC下conio.h头文件中定义的用于清屏的函数是clrscr();VC下stdlib.h头文件中定义的用于清屏的函数是system(CLS);int random(int num):返回一个0到(num-1)之间的随机整数。在stdlib.h中定义。void randomize( ):生成随机种子。在stdlib.h中定义。(2)俄罗斯方块包括如下图形,其中“*”可以用其它字符表示。* * * * * * * * * * * * *(3)当前状态可用字符数组存储,启动时从指定文件中读取,按Esc退出并保存在指定文件中。如下图可以用7*7字符数组存储,定义如下:* * * * char s77=0000000,0000000,0000000,0000000,1000222,1001002,1111110(4)其中可以用“2”表示移动的俄罗斯方块,“1”表示静止的俄罗斯方块,“0”或空格表示空白。(5)移动或旋转俄罗斯方块所用按键可自己定义。 C语言课程设计 实现方案#include stdio.h#include conio.h#include stdlib.h#include windows.h#include time.h#define random(x) (rand()%x)#define N 13#define M 10#define K 5int sNM=0,0,0,2,2,2,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1;/*当前状态*/int aK33=0,2,0,2,2,2,2,0,0,2,2,2,2,0,0,2,0,0,2,2,2,2,2,0,0,2,2,2,2;void Disp()int i,j;for(i=0;iN;i+)for(j=0;jM;j+)printf(%c,sij?48+sij: );printf(n);printf(nn操作说明:按4左移,按6右移,按2下移n);void Down()int i,j,k;for(j=0;jM;j+)if(sN-1j=2)break;/*判断是否在下边界*/if(jM)/*若方块在下边界则将方块由2变1*/for(i=0;iN;i+)for(j=0;j=0;i-) for(j=0;j=0;k-)for(j=0;jM;j+)sk+1j=skj; return;for(i=0;iN-1;i+)for(j=0;jM;j+) if(sij=2)if(si+1j!=0&si+1j!=2)break;/*方块下方不空退出内循环*/ if(jM)break;/*方块下方不空退出外循环*/if(iN-1|jM)/若已触到则将方块由2变1*/for(i=0;iN;i+)for(j=0;jM;j+)if(sij=2)sij=1;for(i=0;iN;i+)for(j=0;j=0;i-) for(j=0;j=0;k-)for(j=0;j=0;i-) for(j=0;jM;j+) if(sij=2)si+1j=sij,sij=0;/*方块下移*/void Right()int i,j;for(i=0;iN;i+)if(siM-1=2)return;/* 已经在右边界退出 */for(i=0;iN;i+) for(j=0;j=0;j-) for(i=0;iN;i+) if(sij=2)sij+1=sij,sij=0;/* 方块右移 */void Left()int i,j;for(i=0;iN;i+)if(si0=2)return;/* 已经在左边界退出 */for(i=0;iN;i+) for(j=1;jM;j+) if(sij=2)if(sij-1!=0&sij-1!=2)return;/* 方块左方不空退出 */for(j=1;jM;j+) for(i=0;iN;i+) if(sij=2)sij-1=sij,sij=0;/* 方块左移 */int Have()/*判断是否有可移动方块,没有返回1,否则返回0*/int i,j;for(i=0;iN;i+)for(j=1;jM;j+)if(sij=2)return 0;return 1;void Add()/*随机生成方块*/int t=random(K),x=random(M-3);/*生成两随机数t和x分别作为第t种方块和第x位置出现*/int i,j; if(x0)x=-x%(M-3);for(i=0;i3;i+)for(j=x;jx+3;j+)sij=atij-x;return;void main()char c=A;while(1)/*判断是否有按键,没有循环输出i,否则停,conio.h*/if(!kbhit()c=2;else c=getch();if(c=p)getch();system(CLS);/*清屏,TC用clrscr();,VC用system(CLS);*/switch(c)case 4:Left();break; /*左移*/case 6:Right();break; /*右移*/case 9:case 27: return; /*按9或Esc(=27)另存后退出*/case 2:; /*下移*/default:Down();c=2;if(Have()Add();Disp();Sleep(600);/*睡眠600ms,windows.h*/5 C语言 课程设计小结学习C语言的起步就是学习它的方法规则,如果把它学习得好在学习后面的时候就比较容易理。比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础,如果把它们都了解很好了,那么编起程序来就很得心应手。比如说if语句和switch语句,这两种条件语句都是用来执行判断功能的,那什么时侯用if什么时侯用switch,如果很好地了解它们的结构和作用的话那么就能灵活运用:若它的条件分支是多个而且条件的值是一个确定的值时就可以选用switch。反之,在大多数情况下就用if。掌握了语言法规则,不一定就能编出程序来,其实学习编程就是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断润年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就出来了,程序也差不多了,再结合掌握的语言的方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 镜片培训专业知识提问课件
- 镀锌方管销售知识培训
- 2025年墙体构造试题答案及答案
- 2025年3D打印技术在船舶制造中的应用
- 年产片式散热器5万台异址新建项目环评报告表
- 信达盈(中山)模具有限公司年产塑料配件36万套新建项目环评报告表
- 键盘乐器课件
- 锣鼓歌课件教学课件
- 2025员工与公司解除劳动合同协议书格式
- 2025授权加工合同范本示例
- 2025版欧派橱柜环保材料购货合同
- 烧烫伤应急预案
- 教研组长经验交流会上教学副校长讲话:抓关键见实效干出值当的组长工作
- 2025-2026学年沪教版(2024)小学英语四年级上册教学计划及进度表
- 2025年云南高考化学真题试卷完全解读(含试卷分析与备考策略)
- 2025年高级中学教师资格考试(美术学科知识与教学能力)历年参考题库含答案详解(5套)
- 2025年广西中考英语试卷+答案解析
- 2024年湖南长沙血液中心招聘真题
- 5.一个豆荚里的五粒豆 第1课时(学习任务单)语文统编版四年级上册
- 对外工程管理办法
- 2025年中国带贴面离心玻璃棉毡数据监测研究报告
评论
0/150
提交评论