QT五子棋游戏设计课程设计报告_第1页
QT五子棋游戏设计课程设计报告_第2页
QT五子棋游戏设计课程设计报告_第3页
QT五子棋游戏设计课程设计报告_第4页
QT五子棋游戏设计课程设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典word整理文档,仅参考,双击此处可删除页眉页脚。本资料属于网络整理,如有侵权,请联系删除,谢谢!2013-2014学年秋季学期《Windows程序设计》课程设计报告学序院:号:名:号:计算机与信息学院56学指导教师:完成时间2014年05月29日目录...............................................................1...................................................1...............................................1...............................................................2...................................3...................................................................4...........................................................................4...........................................................................6...........................................................................7①.............................................................7②............................................................................................................................通过所学的知识和技术,在老师的帮助下以及自己查询资料,完成对五子棋游戏的编程实现,使程序支持人人战,并且可以完成判断输赢,悔棋,从新开始等基本功能。本次课程设计的课题简单,且娱乐性强。在完成课题的过程中可以很好的复对网络资源的有效利用有了更深的体会。课程设计的内容:本次设计将提供一个“五子棋”的游戏程序,可完成的功课程设计的要求:使用QT软件开发,语言使用。本系统主要分为输入模块、输出模块和判断模块这三大块。各模块依据所属功能的不同来划分。断和对用户悔棋和从新开始等操作命令的响应。本次采用了QT进行程序设计,对于图形界面有较好的处理方法和环境。1是否悔棋是否从新开始是否退出图图1是系统的总体模块图,依据系统的不同功能包含3个大的模块:输入模解释。这里只是对系统功能实现有一个初步的了解。2设计过程说明:图图2给出了整个系统的流程图,简单直观的使系统一目了然。下面开始分析整个系统的流程。一步。3基本分为:输入模块、输出模块、判断模块将用户输入的数据记录,并输入给程序。本系统采用的是鼠标事件输入,用户用鼠标点击棋盘上的格子,系统将记录并在棋盘上显示。部分代码:voidMainWindow::mousePressEvent(QMouseEvent*e){intm,l=1,n;x=e->pos().rx();x=(x/50)*50;y=e->pos().ry();y=(y/50)*50;if(color[y/50][x/50]==1||color[y/50][x/50]==2);//判断是否已有标签else{label[j][j1]=newQLabel(this);if((j1+temp)%2==0){label[j][j1]->setGeometry(x,y,50,50);label[j][j1]->setStyleSheet("background-color:black;border-radius:25px");color[y/50][x/50]=1;if(win==0)label[j][j1]->show();if(j1==9){j++;}}else{label[j][j1]->setGeometry(x,y,50,50);label[j][j1]->setStyleSheet("background-color:gray;border-radius:25px");color[y/50][x/50]=2;if(win==0)label[j][j1]->show();if(j1==9){j++;}4}k=check(color[j][j1],y/50,x/50);if(k==1){player=newQMediaPlayer();player->setMedia(QUrl::fromLocalFile("/E:/qt_data/music/劲乐团-卡农.mp3"));player->play();QMessageBox::warning(this,tr("haha"),tr("你获胜啦!"),QMessageBox::Yes);win=1;}if(j1==9)j1=0;elsej1++;}}5棋盘的部分代码:6判断模块分为判断命令模块和判断输赢模块。①的判断。赢图4:判断输赢模块流程图7判断输赢模块的具体工作原理由图4可以清晰直观的看到。为了完成判断输赢模块的编码实现,首先要了解五子棋输赢的规则。五子棋继续判断这时候是否有五颗棋子满足要求,然后这样循环。下棋。了。判断输赢模块的部分代码:intMainWindow::check(intn,intm,intp)//判断是否五子相连{l=1;intk=m,k1=p;for(inti=0;i<10-p;i++)/*横向右判断是否五子相连*/{if(color[k][p]==color[k][++k1]){l++;if(l==5)return1;}elsebreak;}k1=p;for(i=p-1;i>=0;i--)/*横向左判断是否五子相连*/{if(color[k][p]==color[k][--k1]){l++;if(l==5)return1;}elsebreak;}k=m;k1=p;l=1;for(i=0;i<10-m;i++)/*竖向上判断是否五子相连*/{if(color[k][p]==color[++k][k1]){8l++;if(l==5)return1;}elsebreak;}k=m;k1=p;for(i=m-1;i>=0;i--)/*竖向下判断是否五子相连*/{if(color[k][p]==color[--k][k1]){l++;if(l==5)return1;}elsebreak;}k=m;k1=p;l=1;if(m<=9-p)t=m;elset=9-p;for(i=0;i<t;i++)/*135度向上判断是否五子相连*/{if(color[m][p]==color[--k][++k1]){l++;if(l==5)return1;}elsebreak;}k=m;k1=p;if(p<=9-m)t=p;elset=9-m;for(i=t-1;i>=0;i--)/*135度向下判断是否五子相连*/{if(color[m][p]==color[++k][--k1]){l++;if(l==5)return1;}elsebreak;}k=m;k1=p;l=1;if(m<p)t=m;9elset=p;for(i=0;i<t;i++)/*45度向上判断是否五子相连*/{if(color[m][p]==color[--k][--k1]){l++;if(l==5)return1;}elsebreak;}k=m;k1=p;if(p<m)t=9-m;elset=9-p;for(i=t-1;i>=0;i--)/*45度向上判断是否五子相连*/{if(color[m][p]==color[++k][++k1]){l++;if(l==5)return1;}elsebreak;}if(l!=5)return0;}是对系统功能的一个拓展和优化,有利于用户更方便舒适的操作系统,加强五子棋游戏的娱乐性。这一部分的流程图如下:图5:判断命令模块流程图如图5给出了系统判断命令模块的流程图。如图知道当用户下棋后,系统首先会判断用户是否需要从新开始游戏,如果户继续下棋。下棋后重复这个判断流程。下面附上判断命令模块的部分代码:voidMainWindow::huiqi()//悔棋的代码{label[j][j1-1]->close();color[y/50][x/50]=0;if(temp==0)temp=1;elsetemp=0;}voidMainWindow::init()//初始化界面{player->stop();intt2,t3;for(t2=0;t2<1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论