课设c语言之俄罗斯方块,c语言俄罗斯方块.doc

c语言俄罗斯方块.doc

1 C 语言程序设计 课程设计课程设计 题 目 俄罗斯方块 系 别 数计系 专业(含班级) 09 计应 学 号 20090821103 姓 名 江和椿 指导教师 王红雨 职称 讲师 填表日期 2010 年 01 月 22 日 2 一、 选题的依据及意义 依据自定义函数的利用,结合循环结构、数组、结构体还有点指针与文件只 是进行编译。 通过对学生选课管理系统的操作来进一步掌握和利用 C 语言进行设 计的能力;不仅可以练习而且积累经验逐渐培养编程能力。 二、 本课程设计内容 俄罗斯方块俄罗斯方块 提示 1可能要用的函数 int kbhit 函数用于判断是否有按键,若有返回非零值,否则返回零。在 conio.h 中定 义。 int bioskeyint ;返回按键扫描码和 ASCII 码,VC6.0 中不能用。在 bios.h 中 定义。 TC 下“conio.h“头文件中定义的用于清屏的函数是 clrscr; VC 下“stdlib.h“头文件中定义的用于清屏的函数是 system“CLS“; int randomint num返回一个 0 到num-1之间的随机整数。在 stdlib.h 中定义。 void randomize 生成随机种子。在 stdlib.h 中定义。 2俄罗斯方块包括如下图形,其中“*”可以用其它字符表示。 * * * * * * * * * 3当前状态可用字符数组存储,启动时从指定文件中读取,按 Esc 退出并保存在指定文件 中。如下图可以用 7*7 字符数组存储,定义如下 char s77 “0000000“, “0000000“, “0000000“, “0000000“, “1 1000222222“, “1 1001 1002 2“, “1111111111110“ 4其中可以用“2”表示移动的俄罗斯方块, “1”表示静止的俄罗斯方块, “0”或空格表示 空白。 5移动或旋转俄罗斯方块所用按键可自己定义。 * * * * * 3 C 语言课程设计语言课程设计 实现方案实现方案 include “stdio.h“ include “conio.h“ include “stdlib.h“ include “windows.h“ include “time.h“ define randomx randx define N 13 define M 10 define K 5 int sNM0,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 aK330,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; fori0;iN;i forj0;jM;jprintf“c“,sij48sij ; printf“n“; printf“nn 操作说明按 4 左移,按 6 右移,按 2 下移n“; void Down int i,j,k; forj0;jM;jifsN-1j2break;/*判断是否在下边界*/ ifjM/*若方块在下边界则将方块由 2 变 1*/ fori0;iN;iforj0;j0;i forj0;j0;kforj0;jM;jsk1jskj; return; fori0;iN-1;i forj0;jM;j ifsij2ifsi1j0/*方块下方不空退出内循环*/ ifjMbreak;/*方块下方不空退出外循环*/ 4 ifiN-1jM若已触到则将方块由 2 变 1*/ fori0;iN;iforj0;jM;jifsij2sij1; fori0;iN;iforj0;j0;i forj0;j0;kforj0;j0;i forj0;jM;j ifsij2si1jsij,sij0;/*方块下移*/ void Right int i,j; fori0;iN;iifsiM-12return;/* 已经在右边界退出 */ fori0;iN;i forj0;j0;j fori0;iN;i ifsij2sij1sij,sij0;/* 方块右移 */ void Left int i,j; fori0;iN;iifsi02return;/* 已经在左边界退出 */ fori0;iN;i forj1;jM;j ifsij2ifsij-10/* 方块左方不空退出 */ forj1;jM;j fori0;iN;i ifsij2sij-1sij,sij0;/* 方块左移 */ int Have/*判断是否有可移动方块,没有返回 1,否则返回 0*/ int i,j; fori0;iN;iforj1;jM;jifsij2return 0; return 1; void Add/*随机生成方块*/ 5 int trandomK,xrandomM-3;/*生成两随机数 t 和 x 分别作为第 t 种方块和第 x 位置出现*/ int i,j; ifx0x-xM-3; fori0;i3;iforjx;jx3;jsijatij-x;return; void main char cA2 ifcpgetch; system“CLS“;/*清屏,TC 用 clrscr;,VC 用 system“CLS“;*/ switchc case 4Left;break; /*左移*/ case 6Right;break; /*右移*/ case 9case 27 return; /*按 9 或 Esc27另存后退出*/ case 2; /*下移*/ defaultDown; c2Disp;Sleep600;/*睡眠 600ms,windows.h*/ 2 C 语言语言 课程设计小结课程设计小结 学习 C 语言的起步就是学习它的方法规则,如果把它学习得好在学习后面的时候就 比较容易理。比如变量,首先要了解变量的定义方式(格式),其意义是什么(定 义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。 在 C 语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前, 所以在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎 么实现等。这些都是语法基础,如果把它们都了解很好了,那么编起程序来就很得 心应手。比如说 if 语句和 switch 语句,这两种条件语句都是用来执行判断功能的, 那什么时侯用 if 什么时侯用switch,如果很好地了解它们的结构和作用的话那么就 能灵活运用若它的条件分支是多个而且条件的值是一个确定的值时就可以选用 switch。反之,在大多数情况下就用 if。 掌握了语言法规则,不一定就能编出程序来,其实学习编程就是要学习一种 思想,一种思维方法,首先要确定一种算法,如从 1 加到 100,判断润年等,我认为这 些算法都是一种思维方法。 画流程图就是在构建编写程序思路的过程,当画好一个流 程图时编程思想也就出来了,程序也差不多了,再结合掌握的语言的方法规则,在 计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉 得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方 法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会 形成一种自己的思维方法。因此我认为不管学什么语言都是这样。 另外,良好的编程习惯也是学好 C 语言的重要因素。例如编写程序时用缩进的 方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调 试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调 试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率, 也有助于形成自己的编程风格

1 《C语言程序设计课程设计》任务书 设计题目:俄罗斯方块游戏 使用班级: 学生人数:3 课程设计的目的:C 语言课程设计是计算机网络专业重要的教学环 节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机 的结合起来,独立分析和解决实际问题的机会。  进一步巩固和复习C 程序设计的基础知识。  培养学生结构化程序、模块化程序设计的方法和能力。  提高学生调试程序的技巧和软件设计的能力。  提高学生分析问题、解决问题以及综合利用C 语言进行程序设 计的能力。  了解软件的编制过程。 2 实现的任务:完成大家都熟悉的俄罗斯方块游戏。 设计内容: 1.确定信息的数据结构, 游戏底板定义为如下的结构体类型: struct BORAD{ int var; /* 小方块的状态,被占用或没被占用 */ int color; /* 小方块的颜色 */ }; 游戏方块结构 struct SHAPE{ char box[2]; /* 用2 个字节来表示方块*/ int next; /* 小方块的下一连接方块编号 */ int color; /* 小方块的颜色 */ }; 结构化数组的值不同来表示不同方块的形状(不少于10 个) 2.程序应具有以下基本功能:  预览游戏方块。  控制游戏方块(下、左、右、旋转)。  游戏速度分数、更新功能。 3.如有时间,可为程序增加以下功能:  登录模块。该模块在进入主界面之前先执行,用于对进入系统 的用户进行身份验证,若用户输入正确的用户名及用户密码, 则进入主界面,否则输入超过3 次错误则退出程序。处理方法: 用户名及用户密码可保存在一文件中,校验时从文件中读入数 据进行校验。在系统中应增加一个用户管理模块,在其中可新 增用户,修改用户信息等。  系统帮助。显示开发者姓名、班级、开发完成日期、版本号和 指导老师等信息。 3 设计要求: 1.使用文件进行存储和管理。程序启动时可从文件中读取信息,或 从键盘输入信息。 2.不同的功能使用不同的函数实现(模块化),对每个函数的功能和 调用接口要注释清楚。对程序其它部分也进行必要的注释。 3.对系统进行功能模块分析、画出总流程图和各模块流程图。 4.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有 功能可以反复使用,最好使用菜单。 5.通过命令行相应选项能直接进入某个相应菜单选项的功能模块。 6.所有程序需调试通过。 设计结束需提交下列资料 1、课程设计报告(最好打印)。报告中至少应包括: 程序总的功能说明、程序各模块的功能说明、程序设计的流程图、程 序操作说明书、源程序清单。 2、源程序和编译连接后的可执行程序文件(保存在软盘上提交)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值