课程设计论文基于C语言的俄罗斯方块游戏开发

上传人:枫** 文档编号:508093367 上传时间:2022-10-13 格式:DOC 页数:19 大小:81.50KB
返回 下载 相关 举报
课程设计论文基于C语言的俄罗斯方块游戏开发_第1页
第1页 / 共19页
课程设计论文基于C语言的俄罗斯方块游戏开发_第2页
第2页 / 共19页
课程设计论文基于C语言的俄罗斯方块游戏开发_第3页
第3页 / 共19页
课程设计论文基于C语言的俄罗斯方块游戏开发_第4页
第4页 / 共19页
课程设计论文基于C语言的俄罗斯方块游戏开发_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《课程设计论文基于C语言的俄罗斯方块游戏开发》由会员分享,可在线阅读,更多相关《课程设计论文基于C语言的俄罗斯方块游戏开发(19页珍藏版)》请在金锄头文库上搜索。

1、青 岛 农 业 大 学本 科 生 课 程 论 文论 文 题 目 基于C语言的俄罗斯方块游戏开发 学生专业班级 2010级通信工程专业02班 学生姓名(学号) 指 导 教 师 完 成 时 间 2011年9月22日 2011 年 9 月 11 日 基于C语言的俄罗斯方块游戏开发一 实验题目本课程设计是在学生完成计算机技术基础课程学习后进行的。学生通过本课程的实践,能进一步掌握高级语言程序设计基本概念,掌握基本的程序设计方法;通过设计一个完整的小型程序,初步掌握开发软件所需的需求定义能力、功能分解能力和程序设计能力、代码调试技能;学习编写软件设计文档;为未来的软件设计打下良好的基础。要求学生掌握所学

2、的程序设计方法的基本知识。结合实际深入理解高级语言程序设计的基本概念、原理及方法。运用所学的基础知识开发一个小型的程序,能根据问题的需要构造所需的数据结构,设计适合的算法,解决问题。掌握设计任务的具体要求,进行设计、调试软件的具体方法、步骤和技巧。对一个实际课题的软件设计有基本了解,拓展知识面,激发在此领域中继续学习和研究的兴趣,为学习后续课程做准备。二实验要求与目的设计目的:本程序旨在训练学生的基本编程能力和游戏开发技巧,熟悉C语言图形模式下的编程。本程序中涉及机构体、数组、时钟中断及绘图方面的知识。通过本程序的训练,使学生能对C语言有更深入的了解,掌握俄罗斯方块游戏开发的基本原理,为将来开

3、发出高质量的游戏软件打下坚实的基础。功能:1)游戏方块预览功能。在游戏过程中,当在游戏底板中出现一个游戏方块时,必须在游戏方块预览区域中出现下一个游戏方块,这样有利于游戏玩家控制游戏的策略。由于在此游戏中存在19种不同的游戏方块,所以在游戏方块预览区域中需要显示随机生成的游戏方块。2)游戏方块控制功能。通过各种条件的判断,实现对游戏方块的左移、右移、快速下移、自由下落、旋转功能,以及行满消除行的功能。3)游戏显示更新功能。当游戏方块左右移动、下落、旋转时,要清除先前的游戏方块,用新坐标重绘游戏方块。当消除满行时,要重绘游戏底板的当前状态。4)游戏速度分数更新功能。在游戏玩家进行游戏过程中,需要

4、按照一定的游戏规则给游戏玩家计算游戏分数。比如,消除一行加10分。当游戏分数达到一定数量之后,需要给游戏者进行等级的上升,每上升一个等级,游戏方块的下落速度将加快,游戏的难度将增加。5)游戏帮助功能。玩家进入游戏后,将有对本游戏如何操作的友情提示。三实验环境硬件:CPU-AMD AthlonXP 1800+内存-DDR333256M硬盘-40G显示卡-Max44064M 128bit显示器-17寸彩显软件:OS-Windows XP开发工具-VC+四系统的设计思想(一) 实现程序的流程图隐藏光标初始化背景定义并开始时间游戏是否结束?是否结束?是否有键入?自由下落对左右下变形暂停等进行处理显示并

5、打印背景是否到底?产生并打印下一个方块是否消行?Allscore += scoreCase 0;Speed=25Level=0Case 9;Speed=0Level=9Case 1;Speed=20Level=1printf(%d, level);1Y YYNNYNNY开始;1printf(n)return 0;结束(二)具体的函数实现我先将该程序分为三个部分,即必要的输出部分、主要的函数、次要函数。必要的输出部分应包括背景的输出(包括原有方块的显示)、方块的输出、及下一方块的输出。主要函数应包括实现方块的打印、消行、自由下落、旋转、原来方块的擦除。次要函数应包括显示下一方块、计分、暂停、对方

6、快进行涂色、难度设置等功能的实现。首先进行相关定义为下面编写程序做准备int dia_x, dia_y;/存储方块的位置,左上角int shape, change, nextshape, nextchange;/定义方块的开关与变型clock_t nowtime;/定义开始时间int BackgroundYYYXXX = 0;/定义背景并初始化int Is_Gethit = 0;/接受按键为1, 否则为0; int score = 0, Allscore = 0;/你的得分HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);/设置控制台void

7、gotoxy(int x, int y)/设置光标位置进行必要的输出1.通过数组输出方块的所有图形int Tetris7444 = 0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,/方正0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0

8、,0,0,1,0,0,0,1,1,0,0,1,0,/T形0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,/长条0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,/z0,0,0,0,0,1

9、,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0,/反Z0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,/J0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,

10、1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,/L2.打印初始化背景void Init()/初始化背景int i, j;for(i = 0; i XXX; +i)/初始化横的Background0i = 1;BackgroundYYY-1i = 1;for(j = 1; j (YYY-1); +j)/初始化竖的Backgroundj0 = 1;BackgroundjXXX-1 = 1;srand(unsigned)time(NULL);dia_x = XXX/2-1;dia_y = 1

11、;Dis_Back();Score();shape = rand()%7;change = rand()%4;NextTetris();进行主要函数的编写1.打印方块void Dis_Dia(int dia_x, int dia_y, int shape, int change)/打印方块SetColor(shape);int i, j;for(j = 0; j 4; +j)for(i = 0; i 0; -j)CanDis = 1;X:for(i = 1; i 1; -jj)/调整背景数组for(ii = 1; ii (XXX - 1); +ii)Backgroundjjii = Backgroundjj-1ii;+num;goto X;if(num)system(cls);Dis_Back();/重新打印背景score = num*num;4.擦出方块函数(当方块下落到下一时刻时,上一时刻的方块必须进行擦出,以及在显示下一方块时也要调用该函数。)void Clear_Dia(int dia_x, int dia_y, int s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号