游戏设计课程设计

游戏设计课程设计
游戏设计课程设计

游戏设计

课程名称:游戏技术基础

作业题目:RPG冒险游戏

专业:计算机科学与技术班级:072班

学生姓名:江宏赞学号:2007081211 [成绩]

[评语]

一、问题描述

用所学的知识实现RPG冒险类游戏。实现场景绘制,人物行走与对话,剧情编排等。

二、需求分析

这是一个比较简单的RPG冒险类游戏,实现了早期的RPG模式。涉及了人物移动及选择。剧情中,激发玩家的好奇心,使玩家对未知剧情的探索而融入其中,并揭开剧情中隐藏的秘密,从而体现玩家的操作。

三、概要设计

游戏主要解决的问题:地图的绘制与障碍物、人物的行走与对话、人物的移动动画。

四、详细设计

1.游戏开始;

CMainFrame::CMainFrame()

{

// TODO: add member initialization code here

Create(NULL,"绘图窗口",WS_POPUP);

hdc = ::CreateCompatibleDC(NULL);

heroPosition.x1 = 180;

heroPosition.y1 = 20;

maidPosition.x1 = 550;

maidPosition.y1 = 150;

canNotGo(); //确定地图不能走的区域

cityCanNotGo(); //初始化地图不能走的区域

mapPicture = 12;

boolTalk = false;

maidPicture = 38;

inRoom = false;

inCity = true;

inForest = false;

heroPosition.control = 0;

maidPosition.control = 1;

talkSoldier = 0;

loadingPic("city.bmp", 640, 480, 12);

loadingDirectPic("sub00.bmp", 0);

loadingDirectPic("npc02.bmp", 21);

loadingDirectPic("Npc01.bmp", 36);

loadingDirectPic("1.bmp",45);

loadingPic("Dialog.bmp", 640, 100, 13);

loadingPic("Dialog1.bmp", 640, 100, 16);

loadingPic("Dialog2.bmp", 640, 100, 17);

loadingPic("Dialog3.bmp", 640, 100, 18);

loadingPic("Dialog4.bmp", 640, 100, 19);

loadingPic("Dialog5.bmp", 640, 100, 29);

loadingPic("Dialog6.bmp", 640, 100, 30);

loadingPic("Dialog7.bmp", 640, 100, 31);

loadingPic("Dialog8.bmp", 640, 100, 32);

loadingPic("Dialog9.bmp", 640, 100, 33);

loadingPic("tou.bmp", 85, 85, 14);

loadingPic("tou3.bmp", 85, 85, 20);

loadingPic("toutwo.bmp", 85, 85, 34);

loadingPic("room.bmp", 640, 480, 15);

loadingPic("end.bmp", 640, 480, 35);

loadingPic("forest.bmp", 640, 480, 44);

loadingPic("Dialog10.bmp", 640, 100, 53);

loadingPic("Dialog11.bmp", 640, 100, 54);

for (int i = 0; i < 8; i++)//******************************************************* *************

{

colorkey(i);

}

for (i = 12; i < 55; i++)//******************************************************* *************

{

colorkey(i);

}

num = 16;

boolTalkMaid = 0;

//显示人物

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[mapPicture], CRect(0,0,640,480) , DDBLTFAST_WAIT);

lpDDSBack->BltFast(180 , 20 , lpDDSPic[0], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSPrimary->Flip(NULL, DDFLIP_WAIT);

}

2.游戏具体操作:

void CMainFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{

// TODO: Add your message handler code here and/or call default

if (nChar == VK_ESCAPE )

{//判断是否按下 Esc 键

PostMessage(WM_CLOSE );

KillTimer(1);

}

if (nChar == VK_DOWN)

{

boolTalkMaid = 0;

num = 16;

heroPosition.y1 += 10;

if (inRoom)

{

if ((heroPosition.y1 == 420) && (heroPosition.x1 <=

70) && (heroPosition.x1 >= 50))

{

if (dialogPrincess == 1)

{

heroPosition.y1 -= 10;

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[mapPicture], CRect(0,0,640,480) , DDBLTFAST_WAIT);

lpDDSBack->BltFast(0, 380, lpDDSPic[29], CRect(0, 0, 640,100) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(5, 385, lpDDSPic[14], CRect(0, 0, 85,85) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[4], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSPrimary->Flip(NULL, DDFLIP_WAIT);

return;

}

if(dialogPrincess == -1)

{

mapPicture = 12;

cityCanNotGo();

heroPosition.y1 = 340;

heroPosition.x1 = 440;

inRoom = false;

inCity = true;

inForest = false;

}

}

}

3.游戏的剧情:

heroPosition.control = heroSouth;

if (map[heroPosition.x1][heroPosition.y1] != 0)

{

heroPosition.y1 -= 10;

return;

}

else if (map[heroPosition.x1][heroPosition.y1] == 0)

{

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[mapPicture], CRect(0,0,640,480) , DDBLTFAST_WAIT);

if (boolTalk)

{

lpDDSBack->BltFast(0, 380, lpDDSPic[13], CRect(0, 0, 640,100) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(5, 385, lpDDSPic[14], CRect(0, 0, 85,85) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inCity)

{

if (heroPosition.y1 > maidPosition.y1)

{

lpDDSBack->BltFast(maidPosition.x1, maidPosition.y1, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= maidPosition.y1)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(maidPosition.x1, 150, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

if(inRoom)

{

if (dialogPrincess != -1)

{

if (heroPosition.y1 > 160)

{

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= 160)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

else

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inForest)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroSouth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

if (talkSoldier != -1)

{

lpDDSBack

->BltFast(140,210,lpDDSPic[47],CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

}

if (heroSouth > 1)

{

heroSouth = 0;

}

}

if (nChar == VK_UP)

{

boolTalkMaid = 0;

num = 16;

heroPosition.y1 -= 10;

if (inCity)

{

if ((heroPosition .y1 == 310) && (heroPosition.x1 <= 455) && (heroPosition.x1 >= 435))

{

if (dialogPrincess != -1)

{

mapPicture = 15;

roomCanNotGo();

heroPosition.x1 = 60;

heroPosition.y1 = 410;

boolTalk = false;

inRoom = true;

inCity = false;

inForest = false;

dialogPrincess = 1;

}

}

// if ((heroPosition.y1 == 20) && (heroPosition.x1 >=150) &&

// (heroPosition.x1 <= 240) && (dialogPrincess == -1))

if ((heroPosition.y1 == 20) && (heroPosition.x1 >=150) &&

(heroPosition.x1 <= 240))

{

mapPicture = 44;

forestCanNotGo();

heroPosition.x1 = 10;

heroPosition.y1 = 100;

boolTalk = false;

inRoom = false;

inForest = true;

inCity = false;

}

}

heroPosition.control = heroNorth;

if (map[heroPosition.x1][heroPosition.y1] != 0)

{

heroPosition.y1 += 10;

return;

}

else if (map[heroPosition.x1][heroPosition.y1] == 0)

{

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[mapPicture], CRect(0,0,640,480) , DDBLTFAST_WAIT);

if (boolTalk)

{

lpDDSBack->BltFast(0, 380, lpDDSPic[13], CRect(0, 0, 640,100) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(5, 385, lpDDSPic[14], CRect(0, 0, 85,85) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inCity)

{

if (heroPosition.y1 > maidPosition.y1)

{

lpDDSBack->BltFast(maidPosition.x1, maidPosition.y1, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= maidPosition.y1)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) ,

DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(maidPosition.x1, 150, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

if(inRoom)

{

if (dialogPrincess != -1)

{

if (heroPosition.y1 > 160)

{

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= 160)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

else

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inForest)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroNorth++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

if (talkSoldier != -1)

{

lpDDSBack

->BltFast(140,210,lpDDSPic[47],CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if ((heroPosition.x1 >= 410 && heroPosition.x1 <= 440) && heroPosition.y1 == 190)

{

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[35], CRect(0,0,640,480) , DDBLTFAST_WAIT);

lpDDSPrimary->Flip(NULL, DDFLIP_WAIT);

Sleep(3000); //结束画面停留的时间,根据自己需要调整

OnClose();

}

}

}

if (heroNorth > 5)

{

heroNorth = 4;

}

}

if (nChar == VK_LEFT)

{

boolTalkMaid = 0;

num = 16;

heroPosition.x1 -= 10;

heroPosition.control = heroWest;

if (map[heroPosition.x1][heroPosition.y1] != 0)

{

heroPosition.x1 += 10;

return;

}

else if (map[heroPosition.x1][heroPosition.y1] == 0)

{

lpDDSBack->BltFast( 0 , 0 , lpDDSPic[mapPicture], CRect(0,0,640,480) , DDBLTFAST_WAIT);

if (boolTalk)

{

lpDDSBack->BltFast(0, 380, lpDDSPic[13], CRect(0, 0, 640,100) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(5, 385, lpDDSPic[14], CRect(0, 0, 85,85) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inCity)

{

if (heroPosition.y1 > maidPosition.y1)

{

lpDDSBack->BltFast(maidPosition.x1, maidPosition.y1, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= maidPosition.y1)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(maidPosition.x1, 150, lpDDSPic[maidPicture], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

if(inRoom)

{

if (dialogPrincess != -1)

{

if (heroPosition.y1 > 160)

{

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

else if (heroPosition.y1 <= 160)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

lpDDSBack->BltFast(450, 160, lpDDSPic[23], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

else

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

if (inForest)

{

lpDDSBack->BltFast(heroPosition.x1, heroPosition.y1, lpDDSPic[heroWest++], CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

if (talkSoldier != -1)

{

lpDDSBack

->BltFast(140,210,lpDDSPic[47],CRect(0,0,40,40) , DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);

}

}

}

if (heroWest > 3)

{

heroWest = 2;

}

}

if (nChar == VK_RIGHT)

{

boolTalkMaid = 0;

num = 16;

heroPosition.x1 += 10;

heroPosition.control = heroEast;

if (map[heroPosition.x1][heroPosition.y1] != 0)

{

heroPosition.x1 -= 10;

return;

}

else if (map[heroPosition.x1][heroPosition.y1] == 0)

{

if (inRoom)

{

if ((heroPosition.x1 + 40 == 460) && (heroPosition.y1 == 160))

{

heroPosition.x1 -= 10;

dialogPrincess = 2;

return;

}

} 五、游戏截图

六、总结与收获:

通过这次课程设计,使我到了制作游戏的不容易。虽然这个是一个很小的游戏,但无论在人物构思代码编写,还是剧情的发展,那都是需要一个团队共同努力的结果。虽然这次课设自己做的地方不是很多;但是,在今后的学习中我还是会更加努力的学习相关方面的知识,不断地充实自己,挑战自己。

对抗小游戏课程设计报告

计算机学院计算机科学与技术专业《程序设计综合课程设计》报告(2011/2012学年第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2012年12月27日

对抗小游戏

目录 第一章课程设计的目的和要求 (1) 1.1 课程设计的目的 (1) 1.2 课程设计的目标 (1) 1.3 课程设计要求 (2) 第二章课程设计任务内容 (3) 2.1 课程设计题目 (3) 2.2系统模块图 (4) 第三章详细设计说明 (5) 3.1 游戏规则 (5) 3.2 游戏过程简介 (5) 3.3 设计思路 (6) 第四章软件使用说明及运行结果 (7) 4.1使用说明 (7) 4.2 运行结果 (7) 第五章课程设计心得与体会 (13) 错误!未定义书签。 附录一:参考文献 (15) 附录二:程序清单 (16)

第一章课程设计的目的和要求 1.1课程设计的目的 C++语言课程设计的主要目的是培养学生综合运用C++程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。 通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。 C++语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。 本次课程设计是通过设计一个较为简单的“对抗小游戏”,进一步熟悉C++中有关各种知识的运用与掌握。了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C++编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础 1.2课程设计的目标 本课程设计的目标: 1.巩固和加深学生对C++语言课程的基本知识的理解和掌握; 2.掌握C++语言编程和程序调试的基本技能; 3.掌握利用C++语言进行软件设计的方法; 4.提高书写程序设计说明文档的能力; 5.提高运用C++语言解决实际问题的能力。

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/c712412069.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

大学生创业实训教学课程设计方案

大学生创业实训(模拟企业运营沙盘部分) 教学设计方案 课程代码: 课程名称:大学生创业实训(模拟企业运营沙盘部课程类型: 实践教学课 总学时:60 学时适用对象:工商企业管理专业先修课程:经济学基础、基础会计、管理基础与实务、财务管理、市场调查与预测等管理类课程。 第一部分课程设置 课程性质与地位本课程是工商企业管理专业、市场营销等经济管理类专业的专业课程。通过本课程学习,既能让学生全面学习、掌握经济管理知识、又可以充分调动学生学习的主动性;同时,让学生身临其境,真正感受一个企业经营者直面的市场竞争的精彩与残酷,承担经营风险与责任, 并由此综合提高学生经营管理素质与能力。 课程基本理念教学应遵循以就业为导向,创新人才培养机制。重点突出学生团队合作、企业战略规划、预算、ERP 物流流程管理等一系列活动。

课程设计思路沙盘模拟课程是集知识性、趣味性、对抗性于一体的企业经营管理技能训练课程。 课程设计思路是:受训学生被分成若干个团队,每个团队由若干个学生组成,每个学生将担任总经理、营销总监、生产总监、财务总监、供应总监等。每个团队经营一个拥有销售良好、资金充裕的虚拟公司,连续从事4-6 个会计年度的经营活动。通过直观的企业沙盘,模拟企业实际运行状况,内容涉及企业整体战略、产品研发、生产、市场、销售、财务管理、团队协作等多个方面,让学员在游戏般的训练中体验完整的企业经营过程,感受企业发展的典型历程,感悟正确的经营思路和管理理念。在短短两周的训练中,学员将遇到企业经营中常出现的各种典型问题,他们必须一同发现机遇,分析问题,制定决策,保证公司成功及不断的成长。 该门课程的建议总学时:60 学时。 第二部分课程教学内容标准 项 目工作任务知识内容与目标技能内容与目标 1组织准备 工作1?学员分组 2?准备接手企业 3.企业中人员职能定位1. 了解各岗位的职能 2. 熟悉自己的岗位

游戏设计与制作课程设计题目

游戏设计与制作课程设计 以下4个题目任选一个按要求完成,并于6月5日(即第15周周四)前提交包含所有材料的课程设计袋。 题目1:太阳系模拟 太阳系(Solar System)是以太阳为中心,和所有受到太阳重力约束的天体的集合体,主要包括太阳,八大行星,以及卫星.此课题模拟太阳系各大行星和卫星围绕太阳旋转运动。 基本设计思路和运行效果可参考“《《计算机图形学》课程设计报告”一文相关内容。 要求: 开发环境——VS2008以上 SDK ——DirectX 9.0c 以上 题目2:基于阴影贴图的阴影的实现 阴影贴图是实现实时阴影的一种方法,它可以实现任意曲面上投影的阴影效果,而不仅仅是平面阴影。 通过本次课程设计,要求: 1、了解基于阴影贴图的阴影实现的基本思路和算法; 2、结合参考文献理解实现过程; 3、基于阴影贴图的阴影实现存在的问题和改进的方法。 4、编写相应的实现代码和测试代码。 参考: 1、”Introduction.to.3D.Game.Programming.with.DirectX.9.0c.Shader.Approach”第22.2节“Shadow mapping”。 2、DX SDK自带的“ShadowMap sample”。 题目3:二维游戏“Breakout!(打砖块)”的设计与实现 进入Breakout的初始界面,屏幕上方的彩色矩形方块代表砖块,屏幕下方的较长的矩形方块表示板子。板子的垂直位置不变,但可在屏幕边界之间通过用户的输入左右移动。还有一个小球,从屏幕中间向下运动,球可从板子或左右墙面反弹击中砖块。击中的砖块即消失。小球不断实现反弹击中砖块的过程,直到以下两种情况出现,退出游戏: 1、小球碰到地面(即屏幕的下边界),即玩家没用板子接住球。在这种情况下,假设一关游戏给三次击球的机会,如果总共有三次没有用板子接住球,玩家失败,退出游戏。 2、所有的砖块都被击中,玩家赢,退出游戏。

c++课程设计 对抗游戏

VC++ 课程设计报告 班级:学号:姓名: 一、名称:对抗游戏 二、目的:设计一个对抗游戏,根据随机产生的数字决定双方的输赢。 三、内容: (1)游戏在开始时系统默认赌注为1,当双方进行对抗时,游戏者可根据自身的牌点决定是否继续下注,例如拿到A,把握增大,则在计算机的牌点出来之前加大赌注,但不超过5点。 (2)将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,则比较牌点之和。 (3)该程序只允许玩家在牌好的情况下加注,添加一些成员函数就可以让计算机根据自己的牌面来判断是否加注及加多少点,这样的程序更加实用。 五、算法分析和流程图 1、主要算法与设计思路 vc++中,类有很好的封装性,要完成对抗游戏的以上功能,可以先构造一个类,将所需要的函数放入其中,再根据需要,编写具体的函数源程序。该程序的过程较为烦琐,要仔细考虑每一步,避免反复,尤其应当注意让函数的功能尽可能做的能够解决多个问题。 2、流程图 游戏过程简介:

3 具体功能的实现 1、先定义一个类: 该程序的数据结构比较简单,由于玩家和计算机都有两张牌,且这两张牌均为随机产生,输出的格式也一样,所以可以分装成一个类的两个对象,相对有特点的是比较函数(Computer)作为算法的主要载体,因为涉及大量牌面内容的比较,而牌面又是私有成员,为简化程序,将该函数定义为类的友元函数,可以说这个函数是整个程序中的核心. class War //类名为War { int player,comp; //玩家,电脑的两张牌 static int Score; //player的赌资 static int nWin,nLost,nDraw; //记录玩家在游戏中赢,输,平的次数 static int Loop; //记录玩家一共进行游戏的局数 public: War(); //构造函数 int PLAYER(); //返回私有成员player的的值

《贪吃蛇游戏课程设计》报告资料整理

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量 }food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动

C++猜单词课程设计--——猜单词游戏

VC++课程设计报告 ——猜单词游戏

VC++课程设计报告 1.功能: 课程设计题目的功能: 一个猜单词游戏。两人游戏时,由一个玩家给出一个单词,在人与计算机游戏时,由计算机给出一个单词,另一个玩家根据组成单词的字母个数猜出单词,猜的次数可以指定,若猜不中,显示一个上吊的人形。 (1)将猜单词的函数与相应的数据封装到类中,并改写主程序,使程序简化。 (2)根据所猜单词的字母个数,给出指定几率的提示字母,显示于单词中的正确位置。 (3)在进入猜单词的过程后,首先显示菜单询问是开始猜单词还是修改设置,默认的修改次数为4,默认显示字符的几率为20%,若要修改这个设置,在 显示菜单中选择设置选项进行修改。 (4)在人人对抗时,一个玩家给出单词时,单词不显示在屏幕上,字符用“*” 显示。 (5)猜单词时,输入一个单词,判断函数改为判断输入单词的字符是否与所猜单词一一对应,将猜中的字符显示出来。 (6)在人机对抗时,可以随机读取单词,也可以选择向单词库输入单词,同时,将单词库中单词的个数显示出来,并根据单词库中单词个数的多少决定随 机选取的范围。 程序设计的思想和方法 (1)类的封装 画上吊人形的类已经封装起来,这部分程序基本不用改了,主要是对人人对抗和人及对抗操作部分类的封装。可以定义一个类的两个对象,也可以定义 为一个基本类和一个派生类的对象,成员函数可根据对象的不同分别调用,数 据结构如下: Class CGuess { private: string Word; //欲猜的单词 double Proba; //显示字符的概率0—1 int GuessNum;//总共可猜的次数 int WrongNum;//猜错的次数 string DisplayWord;//欲显示的单词 string GuessWord;//第二个玩家输入猜想的单词 int nLen;//输入单词的长度 public: CGuess();//构造函数 void InitialSet();//修改设置值 void InputWord();//输入单词并初始化成员函数 void InputGuess();//接收用户所猜的单词 int Judge();//判断是否猜中,猜中返回0,猜不中返回1或-(death) int ShowDisplay();//显示单词及上吊人形,程序结束返回1

C程序课程设计报告(扫雷游戏)

C程序设计 扫雷游戏 一、设计题目:扫雷游戏 二、设计目的 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基

本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 三、设计要求 1.汪洋和孔维亮组成设计小组。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 2.查阅相关资料,自学具体课题中涉及到的新知识。 3.采用结构化、模块化程序设计方法,功能要完善,界面要美观。 4.按要求写出课程设计报告,并于设计结束后1周内提交。 一概述 1)掌握数组指针的概念及其应用 2)培养团结合作精神 2. 课程设计的要求 要求我们有扎实的C语言知识,以及良好的编程习惯,能够熟练的应用循环,有毅力,还要求我们有较强的合作精神,善于总结。同时还要求我们自学C语言作图部分知识。在必要时还要上网查相关资料。 3.课程设计的主要设计思想 扫雷游戏主要用了一个10行10列的二维数组,刚开始利用random随机布雷。 每一个程序最主要的是算法。扫雷游戏算法的重点是一开始统计好每个格子周围有多少雷,当鼠标左键点在格子上时做出判断,如果周围8个格子有雷则显示出雷数,如果没有雷则显示空白格(在四个角的格子显示周围3个格子,其它边缘的格子显示周围5个的状态),我们在主函数中用两个for语句来判断周围雷数。我们还加了鼠标处理函数。 如果格子上有雷则调用函FailExitGame(),显示“Fail!”,游戏结束。若所有的雷都标出,且所有的格子都处理过,则调用函数ExitGame(),显示“OK,Good!”,游戏结束。游戏结束后,按任意键出去。

游戏开发课程设计报告模版-扫雷游戏报告(定稿)

中原工学院信息商务学院 课程设计报告 2016~2017学年第一学期 课程游戏开发课程设计 课程设计名称扫雷游戏 学生姓名*** 学号***** 专业班级数媒141 指导教师郑全录 2016年12月

目录 第一章设计内容及要求 (1) 1.1 扫雷游戏的基本要求 (1) 1.2 游戏需要实现的主要功能 (1) 第二章需求分析 (2) 2.1扫雷游戏界面设计 (2) 2.2 雷区的设计 (2) 2.3 音效的设计 (3) 2.4 扫雷英雄榜的设计 (3) 第三章总体设计 (5) 3.1 总体功能图 (5) 3.2 总体流程图 (5) 第四章主要功能设计流程 (6) 4.1 雷区设计流程图 (6) 4.2 音效设计流程图 (6) 4.3 英雄榜设计流程图 (7) 第五章主要功能设计流程 (8) 5.1 类之间关系图 (8) 5.2程序运行效果图 (8) 5.2.1 游戏登录界面 (8) 5.2.2游戏菜单界面 (9) 5.2.3游戏运行界面 (10) 5.2.4游戏英雄榜界面 (12) 第六章总结 (13) 参考文献 (14) 附录 (15)

第一章设计内容及要求 1.1扫雷游戏的基本要求 当前各种游戏层出不穷,因为游戏的开发成本非常大,所以游戏的开发具有一定的风险性,但是一些小游戏的开发成本具有成本小,编写简单的优势,所以这些小游戏在游戏开发中也占有一席之地。在这类小游戏中包括益智类游戏,它以画面精美、游戏方法简单等特点得到大家的认可。成为人们在工作之余不可或缺的好伙伴。针对这种情况我选择了扫雷游戏该课题作为我的课程题目。 Windows XP和Windows 7系统提供的扫雷游戏是一个很有趣的游戏。本次课程设计的主要任务是使用JA V A语言编写一个与其类似的扫雷游戏。具体要求如下: 1、扫雷游戏分为初级、中级和高级三个级别,同时扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 2、选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中任何一个方块便启动了计时器。 3、用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下没有雷,则显示一个数字,该数字代表此方块周围的8个方块中共有多少颗雷。 4、如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),窗口左上角的雷数计数器将会减少一个。 5、扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 6、用户如果遇到疑问的方块,可以勾选游戏菜单下的标记选项卡(或者用快捷键Alt+G然后点击M)即可标记该可疑方块,此时双击右键并可出现“?”标记。另有颜色选项,当用户选中该项时,游戏将以最低图像像素来显示。 7、如果用户需要使用提示声,可选中声音选项,此时将听到计时的咔嗒声。当用户点中雷时,将有爆炸声产生;胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2游戏需要实现的主要功能 1、用户可以自定义级别并且可以任意输入雷数; 2、具有计时功能,既显示用户完成所有扫雷任务所需要的时间; 3、自动保存扫雷英雄榜。

C语言程序课程设计猜数字游戏

C语言程序设计课程设计 专业:自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 1.1设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 1.2设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do?)。在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 2.1题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。 2.2解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 2.3流程图 子函数流程图如图1所示:

(完整word版)JAVA课程设计--扫雷游戏

合肥学院 计算机科学与技术系 课程设计报告 2009~2010学年第二学期 课程Java语言与应用 课程设计名称扫雷游戏 学生姓名胡远远 学号0604031005 专业班级07网络工程一班 指导教师许强张贯虹

2010年09月 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (2)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (4)扫雷胜利后,显示游戏胜利。 (5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。 1.2 需实现的主要功能 (1)用户点击笑脸实现复位操作。 调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。 文本框TF记录扫雷成功所花的时间 (3)在失败和胜利后跳出失败或胜利的文本框 JoptionPane 该类用来调出对话框并提示胜利 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。

Matlab解数独游戏解析

Matlab解数独游戏解析 课程设计说明书 学生姓名: 燕飞宇学号: 1405054217 信息与通信工程学院学院: 专业: 信息对抗技术专业题目: Matlab专用周 (随数字信号处理课) 指导教师: 李凯、刘宾、杨志良、李沅 2016年 11月 30 日 中北大学 课程设计任务书 2016/2017 学年第一学期 学院: 信息与通信工程学院 专业: 信息对抗技术学生姓名: 燕飞宇学号:1405054217 学生姓名: 毕广宇学号:1405054235 课程设计题目: Matlab课程设计 起迄日期: 2016年12月5日,2016年12月9日 课程设计地点: 信息对抗技术专业综合实验室 指导教师: 李凯、刘宾、杨志良、李沅学科部主任: 张丕状 下达任务书日期: 2016 年11 月30日 课程设计任务书 1(设计目的: (1)通过本课程设计的学习,学生将复习所学的数字信号处理知识,使课堂学 习的理论 知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力; (2)掌握Matlab语言的编程方法,能熟练运用;

(3)通过Matlab实践的课程设计,掌握设Matlab数字信号处理系统的思维方法和基本 开发过程。 2(设计内容和要求(包括原始数据、技术参数、条件、设计要求等): 一、学习Matlab编程及仿真 1、熟悉Matlab的运行环境; 2、学会并掌握Matlab图形编程; 3、根据所设计系统的需要会合理设定需完成系统的各项参数; 4、根据所设计系统的需要,优化程序设计最优系统。二、实践设计要求: 1、根据所选题目,设计实现系统的原理框图。 2、编写Matlab程序,给出系统不同节点输出波形。 3、每人写出设计报告。 三、参考题目 题目1:语音信号分析 通过计算机录制一段语音信号,分析该语音信号。 1、分析该信号的频谱特性; 2、采用IIR进行降噪; 3、根据FIR进行降噪; 4、对信号进行断句分割。 5、求信号的均值、方差; 6、求信号的自相关系数; 7、求信号的窗(1秒、2秒)能量; 8、求信号的窗(1秒、2秒)自相关分析 9、采用平均幅度差函数(AMDF法)提取求信号的基音周期、谱估计;

计算机技术基础(c语言)课程设计 简单的打字游戏

计算机技术基础(C程序) 课程设计报告 一.题目:简单打字游戏 二、选题背景: 在全球信息化高度发展的今天,计算机技术是现代人必须掌握的基本技术。而一手精湛的打字技术更是我们自动化人所必备的资本。本c语言程序的开发为广大计算机使用者提供了一个很好的平台。 三、设计思想: 本程序主要应用了e l s e…i f语句、g o t o语句等函数。建立打字练习的程序。通过使用积分的方式,给使用者以直观的视觉冲击。激励使用者的练习兴趣。

三、程序流程图:

四:程序清单 #include "conio.h" #include "stdlib.h" #include "graphics.h" main() {char a[36]; int i,j,x,key,t,score=0; int gd=DETECT,gr; initgraph(&gd,&gr,""); cleardevice(); for(i=0;i<10;i++) a[i]=48+i; for(i=10;i<36;i++) a[i]=55+i; a[i]=0; for(i=1;i<81;i++) { gotoxy(i,3); printf("%c",220); gotoxy(i,18); printf("%c",220); } gotoxy(5,1); printf("score:"); settextstyle(1,0,8); outtextxy(100,350,"TYPE GAME"); sleep(2); randomize(); for(;;) { gotoxy(12,1); printf(" "); gotoxy(12,1);

扫雷小游戏课程设计

西安科技大学 软件工程课程设计报告 题目:扫雷游戏开发 班级:计科0901班 学号: xxxxxxxxxxxx 姓名: xxxxxxx 电话:xxxxxxxxxxxxx

2012年7月 目录 1 绪论 (3) 1.1 选题目的及意义 (3) 1.2 系统概述 (3) 2 可行性研究报告 (4) 3 需求规格说明书 (5) 4 总体设计说明书 (6) 5详细设计说明书 (7) 6 系统实现 (16) 6.1 开发环境 (16) 6.2 关键技术 (16) 6.3 运行结果 (16) 7测试分析报告 (17) 8心得体会 (19) 参考文献

1.绪论 1.1选题目的及意义 随着现在生活节奏的加快,人们在工作学习之余需要一个轻松娱乐的放松环境。因此我编写此软件的目的,一方面作为初学者来了解java环境下的小程序开发,另一方面使用户能在娱乐休闲的同时拓展思维能力。扫雷是单人计算机游戏。游戏的用户界面由小方格组成的战场构成。当游戏开始时,计算机将固定的地雷数随机的放到战场的方格。此游戏还允许玩家指定战场中的地雷数。 参考Windows 操作系统提供的扫雷游戏,改进扫雷游戏程序,增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。 背景说明: a.软件名称:扫雷 b.用户:所有扫雷游戏爱好者 1.2 系统概述 1.2.1扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别。单击游戏菜单可以选择“初级”、“中级”和“高级”。 (2) 选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击‘“开始”便启动计时器。 (3) 用户要揭开某个方块,可左键单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5)当用户点中雷时,将有“你输了”的提示出现,胜利时,将有“你赢了”的提示出现。 1.2.2 需实现的主要功能 用户可以自定义级别并且可以任意输入雷数; 具有计时功能,即显示用户完成移动盘子所花费的时间。

课程设计-c语言设计-五子棋游戏 0528

课程设计-c语言设计-五子棋游戏

河南城建学院 测绘与城市空间信息系 测绘程序设计 题目: 五子棋游戏 班级: 0614112 人数: 3人 成员: 学号: 指导老师: 时间:2012年6月

目录 1课程设计报告-------------------2 1.1问题描述----------------------2 1.2 任务分工- - - - - - - - - - - - - - - 2 1.3需求分析---------------------------3 1.4概要设计-----------------------3 1.5详细设计-----------------------4 1.6调试分析---------------------5 2源程序---------------------6 3程序的说明文件-------------------12 4课设总结-----------------------13

1.课程设计报告 1.1问题描述 连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。 1.2 五子棋的背景 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 1.2 任务分工 组长:赵哲武 负责小组程序的输入和创新部分,分配任务,使工作衔接有序,以

java扫雷游戏课程设计报告

Java课程设计报告 姓名 号学 系院 级班 业专 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。. (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为

是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2 需实现的主要功能 (1)用户可以自定义级别并且可以任意输入雷数; (2)具有计时功能,即显示用户完成移动盘子所花费的时间; (3)用户可以选择是否有音效; (4)自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 2.2 雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成 图2-1 MineArea类的UML图

猜数字游戏课程设计完整版

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。

三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 四、课内实践课报告撰写要求 1、大型作业类的按课程设计要求撰写; 2、带实习性质的按实习要求撰写; 3、其余的按实验要求撰写。 五、其它 由于存档的需要,所有报告必须双面打印,请教师做好把关工作。 北京邮电大学世纪学院

学前教育名词解释1

幼儿园课程 1、学科课程:通过伦理组织法而获得的一种课程类型。它强调按知识的内在联系及其结构组织课程内容。 2、活动课程:它与分科课程相对,是打破学科之间的逻辑界限以学生的兴趣、需要和能力为基础,通过学生自己组织的一系列的活动而实施的课程。这种课程也称作“儿童中心课程”、“生活课程”“经验课程” 3、核心课程:一种独特的课程类型,既以儿童的某一种要的生活问题,或者是人类社会的某种基本活动为核心来选择和组织教学内容和教学方式方法的课程,这种核心课程称作“问题中心课程” 4、幼儿园课程:依照幼儿园课程目标选定的通过一定的形式表现和组织的基本知识、基本态度、基本行为。 5、目标模式:以对社会又实用价值的目标作为课程开发的基础和核心,并在此基础上选择、组织和评价学习经验的课程编制模式。 6、幼儿园课程评价:针对幼儿园课程的特点和组成成分,分析和判断幼儿园课程的价值的过程,即评估由于幼儿园课程的影响所引起的变化的数量和程度。 7、单元教学:从能引起儿童兴趣的专题或概念发展出单元,设计教育活动时将儿童发展的各个方面或者各个学科综合到单元之中。并在一段时间内围绕这个单元组织教育活动的课程形式。 8、幼儿园课程目标:幼教工作者对幼儿在一定学习期限内的学校效果和身心发展水平或状态的预期。9、普遍性目标取向:依据一定的哲学或伦理观、意识形态和社会政治需要而引 出的对课程进行原则性规 范或总括性指导的目标。 10、行为目标取向:以具体 的、可被视察与操作的行为 来表述的课程目标。指明确 课程实施后儿童身上所发 生的行为变化。 11、生成性目标取向:也称 形成性目标或展开性目标。 是在教育情境中随着教育 过程的展开而自然生成的 课程目标。 12、表现性目标取向:由美 国课程论专家艾斯纳提出 的,指每个儿童在具体的教 育情境中所产生的个性化 表现,它追求的是儿童反应 的多元性,而不是同质性。 13、认知领域:主要包括知 识的掌握、理解、会议、再 认,以及认知能力的形成、 发展等方面。 14、情感领域:主要包括兴 趣、态度、习惯和价值观等 方面的形成、发展的目标。 15、动作技能领域:主要包 括神经肌肉协调的操作技 能、动作技能和行动技能。 16、幼儿园课程总目标:以 内容领域为结构框架的幼 儿园课程总目标往往表现 为幼儿园课程领域目标,它 只是概括的罗列几个具体 的内容领域及提纲挚领的 要求。这类目标一般比较宏 观,表述的也得概括、抽象。 17、年龄阶段(学年)目标: 以内容领域为结构框架的 年龄阶段目标,不仅要考虑 课程的几个内容维度,还要 考虑幼儿年龄发展的维度, 从这两个维度确定年龄阶 段目标。 18、单元目标:是年龄阶段 目标的在分解,在以内容领 域为结构框架的幼儿园课 程目标中,单元目标可以以 时间为单元,也可以以内容 为单元。当以时间为单元 时,这个层次的目标也就相 当于学期计划、月计划、周 计划了。 19、具体教育活动目标:具 体活动目标是微观层面的 目标,它的操作性强,能够 直接指导幼儿园的具体教 育活动,因此在制定具体教 育活动目标时,切记空而 泛。 20、目的性原则:课程内容 是实现课程目标的手段,内 容必须紧紧围绕目标来选 择,否则将会偏离方向,造 成课程的无效。 21、适宜性原则:选择课程 内容的时候,必须要考虑我 们在为谁选择课程。幼儿园 课程是在园幼儿的课程,幼 儿的特点、心理发展水平决 定了其课程内容不同于其 他任何教育阶段。 22、生活化原则:幼儿的学 习特点是以无意注意学习 为主,并且通过看似无意的 生活学到了很多东西,可以 说有生活就有幼儿的学习。 23、兴趣性原则:是基于幼 儿学习成效的一种考虑,在 学习过程中会表现的兴致 勃勃、不知疲倦;相反,则 注意力不集中、没精打采。 兴趣的高低直接影响课程 内容的学习效果,心理学的 研究也充分证明了这一点。 24、基础性原则:幼儿园教 育是基础教育的重要组成 部分,是我国学校教育和终 身教育的奠基阶段。城乡各 类幼儿园教育应从实际出 发,因地制宜的实施素质教 育,为幼儿一生的发展打好 基础。 25、逻辑性原则:指客观的 规律性和内在的联系。幼儿 所学习的课程内容也是存 在相互的联系和规律的。 26、逻辑组织法:根据知识 本身的系统及内在联系来 组织课程内容的一种方法。 该方法对幼儿掌握系统的 知识有益的。 27、心里组织法:根据学习 者的心理发展特点,以适应

相关文档
最新文档