五子棋游戏(参考).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
人机对战五子棋游戏—项目文档 思维分析: 分为显示部分和棋子的选址之处 选子分为:机器选址和人工先址,如果是机器选址话,这是大算法(算法越先进,越智能)。 显示:初始,下棋时 整个程序:初始+循环下棋(算法+显示) 功能分析: 显示画面功能 有输入时的反应 没输入时怎么操作 结束功能 任务分析:在一个20×20的棋盘里,进行循环轮流交替下棋,如果五子连珠,则该方胜,退出游戏。 初步设计(系统分析): 显示:初始化+画面 进行循环游戏 人输入时: 移动的方向 显示移动后的结果 移动后是否五子连珠,如果是,则人胜出,游戏结束 机器输入时: 选择移动的目标位置 显示移动的路径 移动后是否五子连珠,如果是,则机器胜出,游戏结束 返回到循环开始位置 结束游戏 具体设计(系统设计): 显示:初始化+画面 初始化图形驱动 绘制棋盘 底部颜色 棋盘20×20个方格 进行游戏 设置初始的棋手,棋子的位置 设置当前棋手 棋子的初始位置 初始棋手的显示(提示) 进行循环游戏:每替换选手一次,就做一次循环 人输入时: 等待人的输入(键盘的输入), 提示人应按输入 如有输入,则处理输入方向 如果是出格或已有棋子,则报警,不输入 如果条件允许,则刷新显示,记录该棋子 判断是否五子连珠,如果是,则人胜利, 结束游戏 2.2.2 机器输入输入时: 2.2.2.1 提示机器输入 2.2.2.2选择输入的地方(智能算法,需要当前棋子情况) 2.2.2.3 移动显示效果(垂直或水平移动) 2.2.2.4 判定是否五子连珠,如果是,则机器胜利,结束游戏 2.3.2 是ESC的话,则退出 2.3.3 是其他的话,则不反映 结束游戏 显示game over YOU WIN! SORRY! 结束显示,返回 详细设计: 显示:初始化+画面 初始化图形驱动: initgraph(); //初始化图形系统 int iDriver,iMode; detectgraph(iDriver,iMode); initgraph(iDriver,iMode,); 绘制游戏界面 1.2.1 20X20的方格 for(i=0;iMAXLIE;i++) //画白格子 for(ii=0;iiMAXHANG;ii++) { xtemp=xlong*(i+1);ytemp=ylong*(ii+1); setcolor(normalcolor); rectangle (xtemp,ytemp,xtemp+xstart,ytemp+ystart); } 1.2.2 下面的文字显示 outtextxy(xLong,yLong*(MAXHANG+2)+3,Its player1s turns); outtextxy(xLong,yLong*(MAXHANG+3),Player1 win, press any key to quit); 1.2.3 画棋子及边框 fillellipse(xtemp+xr+1,ytemp+yr+1,xr,yr); rectangle () 进行游戏 设置初始的棋手, 棋子的位置 设置当前棋手 playernow=player1; 棋子的初始位置 不设置初始棋子位置,可设置提示框在chess[0][0]; rectangle () 初始棋手的显示(提示) 进行死循环游戏:棋子移动一次,就做一次循环 //或者:每替换选手一次,就做一次循环 while(1) 由人输入时: 2.2.1.1 接收方向键 if(playernow==player1) c=getch(); 2.2.1.2 暂存棋子的位置 case RIGHT: if(xMAXLIE-1) x++; else x=0; case LEFT: if(x0) x--; else x=MAXLIE-1; case UP: if(y0) y--; else y=MAXHANG-1; case DOWN:

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档