第一篇:区域游戏五子棋
10:10-10:40 区域游戏
一、活动目标:
1、新增区域中幼儿能迅速接受理解新游戏。
2、大胆选择自己喜欢的游戏材料和游戏内容,自主愉快地游戏。
3、能与同伴合作游戏,积极交流自己的想法。
二、活动准备:
1、经验准备:知道各区域的游戏玩法。
2、物质准备:(1)各区游戏材料如:穿编游戏、飞行棋、小画板等。
(2)新增游戏区域材料如:五子棋
3、区域内容:
(1)公共区域:大舞台、美发屋等。(2)班级区域:
(3)美食区(关东煮):肉串、涮炉等。
美食区(面包店):面包、披萨等。
美食区(咖啡店):咖啡机、桌椅等。
动手区(制作区):剪刀、双面胶等。
动手区(编织区):编制篮等。
益智区(好玩的磁铁):磁铁、迷宫板等。
益智区(解锁):锁、钥匙等。
阅读区:书籍,桌椅等。
三、活动过程:
(一)介绍玩法,激发兴趣。
教师:今天我们的益智区有了新的棋类游戏——五子 棋。
五子棋是中国民间的一种棋类小游戏,十分地简单,谁先横排、竖排、斜排列出5个棋子就算获胜。
(在电脑上下载五子棋的小游戏进行演示,并讲解。)
(二)提出要求,注意安全。
师:
游戏前老师有几点要求提醒大家。
1、动手区里做粘贴画时要注意不要把豆子撒在地上,更不能放进鼻子耳朵里。
2、建构区的小朋友在堆摆易拉罐的时候请轻拿轻放。
3、益智区里初学五子棋的小朋友遇到问题主动找老师。
4、要和其他小朋友文明交往、合作,学会谦让。
5、垃圾放在垃圾桶,不可以随地乱丢。
小朋友们坐坐好,坐的好的小朋友先插卡进区。
(三)自主进区,观察记录
1、了解幼儿入区的情况,是否全部入区,情绪如何。
2、关注各区域活动情况,教师适当加入。
3、仔细观察并记录,给予有困难的幼儿帮助。
4、提醒幼儿遵守游戏规则,学会谦让合作。
(四)重点指导手工区——五子棋
(五)结束活动,观察记录。整理和收拾
督促幼儿收拾整理,做到轻、快、齐,教师协助收拾整理。
(六)游戏评价
(1)讲解与展示
幼儿自己介绍自己的作品,感受成功后的快乐。
(2)交流与发现
让幼儿交流今天的活动,活动中开心的事情和遇到的问题。
(3)小结
表扬与批评,出示活动中拍摄的照片进行点评,提出新要求。
第二篇:五子棋游戏软件工程课程设计
软件工程设计
专 业:班 级:姓 名:学 号:指导老师:
I
目录
第一章 需求分析.......................................................1 1.1 总体分析..........................................................1 1.2 初始化............................................................1 1.3 主循环控制模块....................................................1 1.4 玩家下子..........................................................1 1.5 盘面分析填写棋型表................................................2 1.6 对方下子..........................................................2 1.7 胜负判断..........................................................2 第二章 功能描述.......................................................3 2.1 功能模块图........................................................3 2.2 功能说明..........................................................3 第三章 系统设计.......................................................4 3.1 流程图............................................................4 3.2 流程图说明........................................................5 第四章 运行结果.......................................................6 第五章 总结...........................................................7 附录一 源代码.........................................................8
II
软件工程设计
五子棋游戏
第一章 需求分析
1.1 总体分析
软件需求分析是软件开发周期的第一个阶段,也是关系到软件开发成败的关键一步。对于任何一个软件而言,需求分析工作都是至关重要的一步。只有通过软件需求分析,才能把软件的功能和性能由总体的概念性描述转化为具体的规格说明,进而建立软件开发的基础。实践表明,需求分析工作进行得好坏,在很大程度上决定了软件开发的成败。
软件需求分析的任务是:让用户和开发者共同明确将要开发的是一个什么样的软件。具体而言,就是通过对问题及其环境的理解、分析和综合,建立逻辑模型,完成新软件的逻辑方案设计。
基于本游戏,首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个15*15的二维数组Table[15][15](15*15是五子棋棋盘的大小),数组的每一个元素对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表己方的子、‘2’代表对方的子;这张表也是今后分析的基础。在此之后还要为两个玩家双方各建立一张棋型表Computer[15][15][4]和Player[15][15][4],用来存放棋型数据。
1.2 初始化
首先,建立盘面数组Table[15][15]、对战双方的棋型表Computer[15][15][4]和Player[15][15][4]并将它们清零以备使用;然后初始化显示器、键盘、鼠等输入输出设备并在屏幕上画出棋盘(棋盘可以不显示)。
1.3 主循环控制模块
控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。
1.4 玩家下子
当轮到玩家下时,您通过键盘或鼠标在棋盘上落子,程序会根据该点的位置,在Table[15][15]数组的相应地方记录‘2’,以表明该子是玩家下的。
软件工程设计
1.5 盘面分析填写棋型表
您在下五子棋时,一定会先根据棋盘上的情况,找出当前最重要的一些点位,如“活三”、“冲四”等;然后再在其中选择落子点。先来分析己方的棋型,我们从棋盘左上角出发,向右逐行搜索,当遇到一个空白点时,以它为中心向左挨个查找,如果遇到己方的子则记录然后继续,如果遇到对方的子、空白点或边界就停止查找。左边完成后再向右进行同样的操作;最后把左右两边的记录合并起来,得到的数据就是该点横向上的棋型,然后把棋型的编号填入到Computer[x][y][n]中就行了(x、y代表坐标,n=0、1、2、3分别代表横、竖、左斜、右斜四个方向)。而其他三个方向的棋型也可用同样的方法得到,当搜索完整张棋盘后,己方棋型表也就填写完毕了。然后再用同样的方法填写对方棋型表。
注意:所有棋型的编号都要事先 定义好,越重要的号数越大!
1.6 对方下子
有了上面填写的两张棋型表,就是遍历棋型表Computer[15][15][4]和Player[15][15][4]找出其中数值最大的一点,在该点下子即可。但这种算法的弱点非常明显,只顾眼前利益,不能顾全大局,这就和许多五子棋初学者一样犯了“目光短浅”的毛病。如果在这儿下子将会形成对手不得不防守的棋型(例如:‘冲四’、‘活三’);那么下一步对手就会照您的思路下子来防守您,如此一来便完成了第一步的预测。这时再调用模块4对预测后的棋进行盘面分析,如果出现了‘四三’、‘双三’或‘双四’等制胜点,那么己方就可以获胜了(当然对黑棋而言‘双三’、‘双四’是禁手,另当别论);否则照同样的方法向下分析,就可预测出第二步、第三步„„
等一等,要是盘面上没有对手必须防的棋型,哪该怎么办呢?进攻不成的话就得考虑防守了,将自己和对手调换一下位置,然后用上面的方法来预测对手的棋,这样既可以防住对手巧妙的攻击,又能待机发动反击,何乐而不为呢!
1.7 胜负判断
务须多言,某方形成五子连即获胜;若黑棋走出‘双三’、‘双四’或长连即以禁手判负。
软件工程设计
第二章 功能描述
2.1 功能模块图
五子棋游戏判断棋盘是否已满判断是否出错并提示判断那方获胜交替循环双方下棋 图2.1 功能模块图
2.2 功能说明
该五子棋程序基本上实现了五子棋的游戏功能,有双方下棋的界面及最终判定结果的界面。同时该游戏采用二维坐标实现,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。在细节方面,该系统提供实时存储功能,随时记录为完成的游戏,使用户可以很好的处理意外中断的情况。该游戏基本实现了游戏的一些要求和特征。在游戏的源程序及文档方面,我们也严格遵守软件工程思想,立足实验要求,确定任务,需求分析,设计和编码,每个步骤力求清晰易懂。原代码注释详尽,各功能模块功能分明,可移植性强。当然该系统也有很多不足的地方,第一次进行独立的课程设计,也有很多细节方面是考虑到的,这款游戏也是在不断的调试和修改中产生和完善的。希望老师能够指出不足,帮助我不断提高。
软件工程设计
第三章 系统设计
3.1 流程图
开始棋盘已满是输出平局否“0”方选位置判断该位置是否有棋有另找位置无“0”方落子否判断“0”方是否获胜是输出“0”方获胜否棋盘已满是输出平局结束否“x”方选位置判断该位置是否有棋有另找位置无“x”方落子判断“x”方是否获胜是输出“x”方获胜 图3.1 流程图
软件工程设计
3.2 流程图说明
本程序定义了各种操作函数、各种状态判定宏,思想明确,思路清晰。各个判断选择了不同路径,因此继续进行或输出结果。程序中,“循环”的利用非常直接和清晰,双方交替下棋,因此循环往复。最终决出胜负或最终平局。分析时,也考虑了许多种情况,针对各个情况均作出了相对措施和解决方案。
程序采用循环进行双方交替下棋,并进行了很多判断。首先判断棋盘是否已满,若棋盘已满,则输出平局,结束游戏;若棋盘未满,则继续进行。然后判断“0”方是否胜出,若“0”方获胜,则输出“0”方获胜,结束游戏;若“0”方没有获胜,则继续进行。再判断“x”方是否获胜,若“x”方获胜,则输出“x”方获胜,结束游戏;若“x”方没有获胜,则继续进行。回到“首先”的判断。如此循环„„
软件工程设计
第四章 运行结果
图4.1 运行结果初始图
图4.2 游戏过程图
图4.3
软件工程设计
图4.4
图4.5
软件工程设计
图4.6
图4.7
软件工程设计
图4.8 游戏进行图
图4.9 “0”方获胜图
软件工程设计
附录一 源代码
#include
using namespace std;
int Hsheng(char a[][15]);
//判断o子是否获胜的函数
int Bsheng(char a[][15]);
//判断x子是否获胜的函数
int he(char a[][15]);
//判断是否平局(也就是棋盘下满了)的函数
void qipan(char a[15][15])
//执行输出棋盘命令 {
cout<<“本游戏采用二维数组实现,棋盘为15X15的二维直角坐标系,均从1到15,祝二位游戏愉快.”;for(int i=0;i<15;i++)
//打印棋盘
{
for(int j=0;j<15;j++)cout< } } int main(){ char a[15][15]; int x,y; for(int i=0;i<15;i++) for(int j=0;j<15;j++) a[i][j]=' ';qipan(a); while(1)//用循环语句执行o,x交替下子,这些while语句看起来似乎是个死循环~实际上都会经过break结束 { int a1=1; while(1) { for(;a1;) { cout<<“请输入o子下的位置:”; //输入o子的位置 cin>>x>>y;if(a[x][y]=='o'||a[x][y]=='x') //判断是否已有子 {cout<<“已有子请重下”<<“,”;continue;} else if(x>=15||y>=15){cout<<“输入错误请重输”<<“,”;continue;} else { a[x][y]='o';a1=0;} } break;} 软件工程设计 qipan(a); //下好o子后将棋盘显示 if(Hsheng(a)) //判断o子是否已经获胜 {cout<<“o子获胜”< while(1) //下x子 { cout<<“请输入x子下的位置:”; cin>>x>>y; if(a[x][y]=='o'||a[x][y]=='x'||x>=15||y>=15) { for(;a[x][y]=='o'||a[x][y]=='x';) { cout<<“已有子请重下”; cout<<“请输入x子下的位置:”; cin>>x>>y;continue;} for(;x>=15||y>=15||x;) { cout<<“输入错误请重输”<<“,”; //判断输入棋子位置是否正确 cout<<“请输入x子下的位置:”; cin>>x>>y;continue;} a[x][y]='x';break; } else {a[x][y]='x';break;} } qipan(a); //再一次输出棋盘 if(Bsheng(a)) //判断x子是否已经获胜 {cout<<“x子获胜”< if(he(a)) //判断是否平局 {cout<<“平局”< } return 0; } int Hsheng(char a[][15]){ int i,j; //判断横着的5个是否都相等 for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='o'&&a[i][j+1]=='o'&&a[i][j+2]=='o'&&a[i][j+3]=='o'&&a[i][j+4]=='o') return 1; for(j=0;j<15;j++) //判断竖着的5个是否都相等 for(i=0;i<15;i++) if(a[i][j]=='o'&&a[i+1][j]=='o'&&a[i+2][j]=='o'&&a[i+3][j]=='o'&&a[i+4][j]=='o') 软件工程设计 return 1; for(i=0;i<15;i++) //判断左斜5个 for(j=0;j<15;j++) if(a[i][j]=='o'&&a[i+1][j+1]=='o'&&a[i+2][j+2]=='o'&&a[i+3][j+3]=='o'&&a[i+4][j+4]=='o') return 1; for(i=0;i<15;i++) //右斜5个 for(j=14;j>3;j--) if(a[i][j]=='H'&&a[i+1][j-1]=='o'&&a[i+2][j-2]=='o'&&a[i+3][j-3]=='o'&&a[i+4][j-4]=='o') return 1; return 0; } int Bsheng(char a[][15]) //同o,只是改字符 { int i,j; for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='x'&&a[i][j+1]=='x'&&a[i][j+2]=='x'&&a[i][j+3]=='x'&&a[i][j+4]=='x') return 1; for(j=0;j<15;j++) for(i=0;i<15;i++) if(a[i][j]=='x'&&a[i+1][j]=='x'&&a[i+2][j]=='x'&&a[i+3][j]=='x'&&a[i+4][j]=='x') return 1; for(i=0;i<15;i++) for(j=0;j<15;j++) if(a[i][j]=='x'&&a[i+1][j+1]=='x'&&a[i+2][j+2]=='x'&&a[i+3][j+3]=='x'&&a[i+4][j+4]=='x') return 1; for(i=0;i<15;i++) for(j=14;j>3;j--) if(a[i][j]=='x'&&a[i+1][j-1]=='x'&&a[i+2][j-2]=='x'&&a[i+3][j-3]=='x'&&a[i+4][j-4]=='x') return 1; return 0; } int he(char a[][15]) { for(int i=0;i<15;i++) for(int j=0;j<15;j++) { if(a[i][j]==' ') //当棋盘全部子都不是' '时才能return 1,即棋盘已下满 return 0; } return 1; } -《软件技术基础》项目报告 《软件技术基础》课程项目报告 项目名称:用VC++实现的五子棋游戏 专业班级: G11009 项目成员:崔光浩 程德武 付强 付钰 李洪润 尚振兴 沈婷玉 佟承雨 周彤姣 指导老师: 殷黎 完成时间: 2011/10/31 -《软件技术基础》项目报告 目录 摘要 一、需求分析.............................................................................................................1.1 开发背景................................................................................................................1.2 项目目标................................................................................................................1.3 运行环境................................................................................................................1.4 游戏说明................................................................................................................1.5 项目任务书............................................................................................................二、技术路线.......................................................................................................................2.1 总体方案................................................................................................................2.2 详细设计................................................................................................................三、工程进度.......................................................................................................................3.1 前期准备部分(1-3)天.......................................................................................3.2中期实现功能部分(4-7)天................................................................................3.3后期总结完善部分(8-10)天..............................................................................四、测试报告.....................................................................................................................4.1 第5天:测试棋谱..............................................................................................4.2 第6天:基本功能测试......................................................................................4.3 第7天:悔棋功能..............................................................................................4.4第8天:测试其他的附加功能...........................................................................4.5第9、10天:总体测试.......................................................................................五、个人小结.....................................................................................................................六、主要算法.....................................................................................................................1判断胜负..................................................................................................................-《软件技术基础》项目报告 2鼠标模拟..................................................................................................................摘要 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。 -《软件技术基础》项目报告 一、需求分析 1.1 开发背景 五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。五子棋容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。传统五子棋的棋子分为黑白两色,采用围棋棋盘,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个同色棋子连成不间断的一排者为胜。 棋类游戏规则简单,对外部要求不高,人们可以随时随地进行对弈。但是,真正能够精通棋类游戏的人却不是很多,主要是棋类游戏具有变化莫测的特点,人们经常得在棋局上深思熟虑才能找到克敌制胜的办法。因此,各种棋类游戏都具有开发智力的效能。在休闲中使自己得到真正的长进,这或许就是其倍受人们青睐的原因所在! 1.2 项目目标 我们将主要通过VC++语言,运用面向对象的程序设计方法,开发此款五子棋游戏。力争使程序短小精悍,简洁明了;游戏界面优美,容易操作;功能丰富,趣味性强。现在将我们对项目期望实现的目标一一介绍: a.能供两人对弈。 b.可以实现经典棋局的回放。c.可以悔棋。 D.能实现棋局步数的排名。e.操作方便,容易上手。 1.3 运行环境 本游戏短小精悍,而且对电脑配置的要求均不高,目前几乎所有的PC机均可运行该游戏。但是为了能让大家更好地体验该款游戏,我们给出如下的最低配置: -《软件技术基础》项目报告 最低配置:CPU1GHz 内存 32M 硬盘 4G Windows 95 Microsoft Visual C++ 6.0 同时结合我们开发该游戏的环境,我们强烈推荐用户使用如下的配置: 最佳配置:CPU2GHz及以上 内存256M及以上 硬盘80G及以上 Windows XP及以上 Microsoft Visual C++ 6.0 1.4 游戏说明 (1)游戏流程: 启动游戏后,显示主菜单。里面包括开始游戏、读取游戏、排行榜、关于游戏、游戏帮助、退出。读取游戏中包含经典棋局的回放和未下完的棋局。排行榜中显示的是棋局步数的排名。(2)游戏规则: 落子:对阵双方交替落子,任何一方不能多下一步,也不能在已有棋子的地方继续落子,否则会有错误提示。 赢棋:任何一方先出现在棋盘的横、纵或斜线上形成连续的五子,则该方获胜。排行榜:可以判断赢者是否可以进入排行榜。 (3)特别提示: 双人对弈模式下,悔棋的过程为:首先由玩家向对方发送悔棋请求(悔棋消息),然后由对方决定是否允许玩家悔棋,在玩家得到对方的响应消息(允许或者拒绝)之后,才进行悔棋与否的操作。 1.5 项目任务书 (1)班级:G11009(2)组长:崔光浩 (3)成员:尚振兴、李洪润、沈婷玉、程德武、付强、周彤娇、佟承雨、付钰(4)项目名称: 五子棋 -《软件技术基础》项目报告 (5)项目背景:五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”。 (6)项目分工:程德武:显示棋盘、显示帮助、游戏版权、显示在线帮助文档。 李洪润:排行榜全部。 付 强:下棋、经典棋局的回放。 沈婷玉:构造函数、初始化所有数据、析构函数。 尚振兴:负责文档规划。 周彤姣:文件的保存和读取。 付 钰:技术支持。 (7)项目进度:1-3天:前期准备,各类资料收集,流程图,算法等同时完成。4-7天:实现基本功能和附加功能。8-10天:最后测试,最后优化。 (各类文档的设计与编写穿插于始终) -《软件技术基础》项目报告 二、技术路线 2.1 总体方案 游戏的简单流程如下图: 开始开始游戏 读取游戏排行榜帮助否关于退出 设定用户信息 下棋判断是否赢是悔棋鼠标模拟进排行榜否 是否保存保存是认输 2.2 详细设计 a.实现玩家的类Player。其中实现各个成员变量的set和get方法,以及构造和析构函数。 b.实现五子棋的类Gobang。其中实现各个功能的函数如下: 1.开始游戏 :开始、下棋、悔棋、认输、保存 void startGame();2.显示帮助文档 void showHelp();3.显示版权 void showEdition();4.显示棋盘 void showChessBoard();5.显示在线在帮助文档 void showOnlineHelp(); -《软件技术基础》项目报告 6.显示菜单 void showMenu();7.播放历史棋局 void movieGoBang();8.读取排行榜 void setWinnerHome();9.显示排行榜 void showWinnerHome();10.修改排行榜 void editWinnerHome(Player &player);11.保存历史记录、保存经典、继续 int saveHD(char *arr);12.读取历史记录、读取经典、继续 int loadHD(char *arr);13.鼠标模拟 1.void monitor();2.bool agree(int a);14.悔棋 void repent();15.判断五子连线 bool fun();16.显示已保存文档、有经典文档和继续文档 int showSave(int choice); -《软件技术基础》项目报告 三、工程进度 本次作业历时十天时间,总的说起来可以分为三个部分: 3.1 前期准备部分(第1-3天) 主要完成方案的讨论、资料的收集、流程图、算法等前期工作,编写报告中需求分析的一部分和总体方案的一部分及项目任务书。 第1天:选定题名,进行方案的讨论。收集资料,写出需求分析中的开发背景部分。第2-3天:商定算法,将软件总体分块,写出项目任务书。 3.2中期实现功能部分(第4-7天) 主要完成预先设想的基本功能和附加功能,完成项目文档中的技术路线和需求分析的剩余部分,完成调试报告中的单功能调适。 第4天:开始软件编写,完成棋盘的设计部分。完成下棋部分程序的编写,测试棋盘设计部分。完成悔棋部分程序的编写,测试下棋部分程序。 第5-6天:完成两人对弈部分程序的编写,测试基本功能,测试悔棋部分。 第7天:完成附加功能,测试对弈部分情况。完善各项功能,测试附加功能。 3.3后期总结完善部分(第8-10天) 总体功能的调试改进,完成项目文档。 第8天:功能调试,优化软件。第9-10天:其它报告剩余部分。 0-《软件技术基础》项目报告 四、测试报告 4.1 第4天:测试棋谱 测试人:程德武 测试内容:通过VC++语言,我们编写了基于对话框的游戏界面。我们将测试它的最基本面貌,希望其是符合我们要求的界面模式! 测试过程:运行程序以后,弹出了棋局的对话框,整体棋局呈现白色,棋局右边和上边都有一些空出的区域,这是我们为将来实现其他附加功能预留的地方。但是测试过程中我们始终发现一个问题,棋格的位图没有按照我们的设想正确放置,出现了跃出棋盘的怪现象! 问题解决:通过反复推敲程序相关部分,我们觉得可能是算法有疏漏,于是修改了一下算法。我们将每个棋格的位图封装了起来,将其位置作为成员数据。再运行程序,问题就不再出现了。反复运行程序再也没有出现异常情况! 4.2 第5天:基本功能测试 测试人:佟承雨 测试内容:程序的基本框架已经编好了,希望能按我们的预期目标能实现供两人对弈功能! 测试过程:将程序编译、链接、运行后,弹出棋局的对话框,然后开始下棋,我们一步一步观察了每步落子后棋局的变化过程,均与我们预期的变化过程一样,我们非常欣喜,这说明我们设计下棋程序时的算法准确无误! 1-《软件技术基础》项目报告 4.3 第6天:悔棋功能 测试人:沈婷玉 测试内容: 测试悔棋功能能否正常实现。 测试过程:我们测试了悔棋功能,反复的测试,此功能运行良好,能够一步一步悔棋,直到无子可悔,而且通过记录观察,每步的悔棋过程均准确无误! 4.4第7天:测试其他的附加功能 测试人:李洪润 测试内容:我们对排行榜,经典棋局回放功能进行了测试 测试过程:我们开始游戏后,正常下棋取得胜利后,程序默认将胜方步数与排行榜中已存在的玩儿家步数进行比较,满足条件则进入排行榜,否则不进入。如果是前五次玩的话默认都进入排行榜。关于经典棋局,进入游戏后,载入经典棋局,每按一次回车,回放一步,经测试无异常。 4.5第8-10天:总体测试 测试人:崔广浩 测试内容:我们将在总体上对程序的运行效果和运行环境进行测试,以完善所有功能,达到软件的最优化! 测试过程: 首先我们测试了软件对运行环境的要求,我们先在Windows xp操作系统中运行了一遍,结果并无异常情况出现;随后我们在CPU只有1GHz频率的硬件系统中运行,也并未发现任何问题!我们基本上可以得出结论,我们的软件在一般的软、硬件环境下都能正常稳定地运行,对机子的配置基本没有什么要求,适合于广大的电脑拥有者使用! 2-《软件技术基础》项目报告 五、个人小结 通过本次五子棋程序的设计,我想我学到了很多东西。我主要是负责大报告的设计和编写,同时也编写一部分程序。编程的确是非常辛苦,主要是第一次利用VC++编写程序。我的VC++学的不是很好,编程时遇到了很多的困难,好在我们班的崔光浩同学不辞辛苦的帮助我调试程序,我们参考了很多的资料,像我们《软件基础》大作业中的优秀作品,网上的有关VC++的一些实用的编程技巧,还有一些经典的算法。善于利用已有的资源,是我在本次大作业中学到得很宝贵的经验,对于网络,我们懂得了不只要用它来实现低级的聊天、看电影、打游戏等功能,我们还要实现获取有用的信息、学习别人先进的方法、查阅相关的电子资料等功能,充分发挥它的作用。 我们这次的作品,虽然只是一个比较简单游戏的实现,但是通过这次合作,我也有很大的收获。虽然是一个小组,但每个人有不同的看问题的方法,我们在做这个软件的时候,大家也曾有过意见的分歧,我们也曾因为预期的功能没有实现而互相指责,也曾为有一点小小的进步而欣喜若狂。一路风风雨雨,我们毕竟是基本完成了预期的功能,努力没有白费,心里特别的充实,这就是创造的快乐,也是合作的快乐。我还编写了大作业的文档,由于自身能力的有限,我虽然竭尽全力,但总的感觉还是不能让我满意,不过,我也从中学到了一些东西: 总的说来,这次作业中我锻炼了自己的能力,也培养了团队合作的精神,感谢我的队友!感谢老师!感谢生活! ——尚振兴 在本软件的开发中,还是有不少地方是不太满意的,首先我通过单纯的VC++语言来实现功能。虽然VC++的强大功能足以应付这种软件的开发要求了,但是由于控件的缺乏,语法的繁琐,在实现很多功能的实现中花费了不少力气。但是由于知识水平的缺乏,无法使用Delphi,flash等更简便的手段来实现功能,希望以后可以弥补这一点。其次,缺乏完成大工程的经验,没有建立一个有效可行的工作计划。在工作中时而通宵奋战,时而停顿不前,既浪费了宝贵的时间,也耗费了大量精力,实在得不偿失。 但值得注意的是,在软件的开发中,我也学到了很多书本上学不到的经验。首先,我使用了别人开发的思想,虽然开始很不习惯,但是上手之后就深深的体会到模块化开发和面向对象语言的方便与高效。其次,这次开发中我使用了很多以前没接触过的函数。除了上网学习资料外。熟练的使用老师提供的参考资料,相信对我以后的工作会有很大的益处。 3-《软件技术基础》项目报告 我觉得通过这个小项目很好地考察了每个学生的知识水平,每个人都发挥了个人最佳的状态。虽然这种形式比普通的卷面考试要难,但是却能够充分调动每个人的积极性去学习自己尚未接触的知识和运用自己已经学过的知识。实验中,我们小组成员之间配合默契,共同商讨问题,使我们在碰到一个一个的问题后,能快速找到相关的答案。难能可贵的是,在软件制作最紧张的时候,大家都义无反顾地放弃了一点休息时间,和团队一起坚持奋斗!所以通过这次实验的合作,我们小组成员之间更加增进了了解,增进了团结! ——崔光浩 六、主要算法 以下时详细算法中提到的主要函数,其他函数在程序中。 1判断胜负 五子棋的胜负,在于判断棋盘上是否有一个点,从这个点开始的右、下、右下、左下四个方向是否有连续的五个同色棋子出现,判断胜负方向如下图 bool Gobang::fun(int a, int b)//判断是否五子连棋 { int arr[8][2]={{-1,-1},{1,1},{-1,0},{1,0},{-1,1},{1,-1},{0,1},{0,-1}};int i;int sum=0;for(i=0;i<8;i+=2) 4-《软件技术基础》项目报告 { sum=1;int A = a+arr[i][0];int B = b+arr[i][1];while(A>=0 && A<=N && B>=0 && B<=N && chessBoard[A][B]==chessBoard[a][b]) { } A = a+arr[i+1][0];B = b+arr[i+1][1];while(A>=0 && A<=N && B>=0 && B<=N && A += arr[i][0];B += arr[i][1];sum++;chessBoard[A][B]==chessBoard[a][b]) } } return false;{ } if(sum>=5)return true;A += arr[i+1][0];B += arr[i+1][1];sum++; 5-《软件技术基础》项目报告 2鼠标模拟 void Gobang::monitor(){ char ch = getch();switch(ch){ case 'w': case 'W': getMonitor = 0;break;case 'a': case 'A': getMonitor = 1;break;case 's': case 'S': getMonitor = 2;break;case 'd': case 'D': getMonitor = 3;break;case 'j': case 'J': getMonitor = 4; 6-《软件技术基础》项目报告 } } break;case 'r': case 'R': getMonitor = 5;break;case 'p': case 'P': getMonitor = 6;break;case 'Q': case 'q': getMonitor = 7;break;default: break;void Gobang::startGame(){ int chose = 1;while(chose){ showChessBoard();monitor(); 7-《软件技术基础》项目报告 if(getMonitor==0 && chessBoardMark[0]-1>=0)chessBoardMark[0]--;if(getMonitor==1 && chessBoardMark[1]-1>=0)chessBoardMark[1]--;if(getMonitor==2 && chessBoardMark[0]+1 case 4: //下棋 if(playGoBang(chessBoardMark[0], chessBoardMark[1])==1) if(fun()==true){ system(“cls”); printf(“nnnnn You Win!!nnnnnnnnnn”); remind(); if(historyStep%2==0)else editWinnerHome(player2);editWinnerHome(player1); showWinnerHome();remind(); 8-《软件技术基础》项目报告 } } } } break;case 5: //悔棋 repent();break;case 6: //保存 showSave(1);break;case 7: //退出 chose = 0;break;default: break; 活动名称:两人三足 活动目标: 1.尝试两人三步走,体验与同伴按节奏同步前进。 2.体验齐心协力合作带来的快乐。 3.知道两人三足的游戏方法。活动准备: 布条人手一条,音乐。重难点分析: 重点:尝试两人三步走,体验与同伴按节奏同步前进。 难点:体验齐心协力合作带来的快乐。活动过程: 一、热身运动。 指导语:冬天到了,让我们跟着音乐一起做运动吧。 (上肢——体转——扭挎——抬腿——压腿——跳跃,幼儿在教师的带领下听着音乐有精神的做热身运动。) 二、幼儿自由探索布条的玩法。 (一)指导语:小朋友们,布条除了可以做操,还可以做很多有趣的活动,想不想玩?那一会开动脑筋去玩一 玩,可以一个人玩,也可以和好朋友合作玩,看谁的玩法 多?(玩的时候要注意安全,不要撞到别人) (二)幼儿自由探索,教师指导。 玩法:捉尾巴、跳舞、开汽车。。 指导语:请小朋友到我这来排队,女孩站南边这条线,男 孩站北边线上) 三、学习两人三足走。 (一)刚才小朋友介绍了自己的玩法,老师也有一种玩法,你们想不想试一试?那你们小朋友看仔细了。(老师示范) (二)讲解两人三足走的动作要领。 提问:我们是怎么玩的? 教师再次示范并讲解:一左一右靠靠紧,拿根布条扣系牢,站直身体迈大脚,预备出发一二一,不急不急安全第一。(示范时走的节奏要慢) 指导语:我先请2位小朋友来试一试。(请个别幼儿练习) (三)幼儿学习两人三足走。 指导语:其他小朋友想不想试一试?那请你们找个朋友 合作去玩一玩。开始行动吧!(幼儿练习,教师巡视指导。) 1.提问:你们成功了吗?有不成功的吗?为什么会失 败? 小结:老师先请玩的好一对示范,再请有问题的一对玩,并请他们说说问题 2.提问:你们发现了什么问题?那你们再去试一试。小结:请失败的那对再去练习 指导语:现在请小朋友再去玩一玩两人三步走,这次可 以换个朋友走一走。(全体幼儿再次练习) (四)分小组两人三足走比赛。 指导语:刚才老师发现你们都会两人三足走了,那这次 分小组比赛,看看哪一组走的好走的快? 老师讲解比赛规则:这是2条跑道,一组一条跑道。这 边的红线是跑道的起点,那边的黄线是终点,前面一对 小朋友达到终点,后面的一对才可以走,哪组先达到终 点为胜。明白了吗?听我的口哨声开始行动,到达终点 就站在终点的红线后面。预备,开始! 四、放松运动。 老师带着幼儿在园内操场绕圈。 活动名称:多样的扇子 活动目标:1.让幼儿知道扇子有多样性。 2.让幼儿大胆发挥想像,设计不同的扇子。3.培养幼儿的想像力及创作能力。重难点分析: 重点:让幼儿大胆发挥想像,设计不同的扇子。难点:培养幼儿的想像力及创作能力。 活动准备:美工区:各种扇子图片、硬纸板、卡纸、一次性筷子,浆 糊等 表演区:各种各样的扇子、一些扇子舞的音乐 角色区:扇子大卖场 活动过程: 一、谈话引导。 (一)小朋友你们知道夏天来了我们要怎样使自己更凉快 吗?(风扇,扇子) 小结:对了,我们感觉热了就可以用扇子扇风。1.那你们知道扇子是什么样的吗?(知道) 今天老师带来了几把用废旧材料制作扇子!那今天我们一 起来看看老师带来的扇子吧!(教师幼儿一起观察用废旧 料做的各种扇子,讨论幼儿各种扇子的特点) 二、介绍活动内容。 材 (一)今天,老师就请你们来制作扇子吧!来一起看看都 有哪些区角吧! 小结:介绍区角 美工区:各种扇子图片、硬纸板、卡纸、一次性筷子,浆 糊等 表演区:各种各样的扇子、一些扇子舞的音乐 角色区:扇子大卖场 (二)提出区域要求。1.活动前,先想好自己想要进入的区域。2.活动时,不随意走动,材料不乱丢乱放。 3.活动结束时,把材料收好放回原处,回到自己的位置 好。 师:我们在区域活动的时候一定要记住,做什么事不要太 急,细心一点,可以和身边的好朋友一起讨论,但是不 要大声喧哗。 (三)幼儿操作,教师适时指导。 如果有不懂的地方可以请好朋友帮忙或者跟老师说,但是 我们要先学会自己思考,不要一遇到问题就请求帮助,不 脑筋。 坐 动 大班区域活动:五子棋 活动目标: 1、初步了解五子棋的基本知识。 2、培养幼儿对下五子棋的兴趣。活动准备: 五子棋棋盘及棋子、规则介绍图 操作要点: 1、幼儿同伴面对面而坐,两人各持一色棋子。 2、棋子横向、纵向和斜向连成五个即为赢家。 3、当对方棋子两个连在一起时,就要注意了。 4、当对方棋子三个连在一起时,就要截住对方的棋子。 5、比一比,哪方最先练成五个。指导建议: 1、鼓励幼儿以不同的位置为起点。 2、可引导幼儿以“锤子剪刀布”的方式决定先后顺序。第三篇:五子棋游戏项目报告
第四篇:区域游戏
第五篇:大班区域活动:五子棋