- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
五子棋联机对战实验报告
实验项目五子棋网络对战和聊天实验日期XX0406实验报告要求: 一、实验目的: 学习和使用socket编程,熟练软件开发 二、实验原理: 使用socket进行网络通信,java作为编程语言 三、实验要求: 编写五子棋程序可以实现联机网络对战,并且可以进行聊天 四、实验步骤、结果及分析: 首先拟定编程语言与开发方案,选择java语言,考虑到java可以跨平台运行, 然后决定把这个程序拆分为客户端、服务器两个部分,每个部分再分成5个小的部分实现不同功能。 1、然后考虑使用java的swing包,创建ClientChessPanel类负责棋盘部分,包括判断输赢,使用数组chesses[i][j]记录棋盘上棋子的分布,对数组进行不同的赋值表示网格节点上无棋、黑棋、白棋;使用playChessHandler作为鼠标单击事件,单击事件调用Clientskt中的函数传送棋子坐标以及输赢信息。drawChess函数画棋子,drawGrids画网格,gameOver判断棋盘棋子分布,输赢情况。 *; *; *; ; classClientChessPanelextendsJPanel{ privatestaticfinallongserialVersionUID=1L; privateintspace=20;//网格间的距离 privateintgrids=30;//棋盘的网格数 privateintradius=space/2;//棋的半径 Clientsktskt; //当chesses[i][j]=0,表示网格节点(i,j)上无棋 //当chesses[i][j]=1,表示网格节点(i,j)上放白棋 //当chesses[i][j]=2,表示网格节点(i,j)上放黑棋 privateint[][]chesses=newint[grids+1][grids+1]; privateintcurrColor=1;//当前棋的颜色 privateMouseListenerplayChessHandler=newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ if(()){ intx=(); inty=(); //放一颗棋子 if(x=0y=0) if(chesses[round(x)][round(y)]==0){ chesses[round(x)][round(y)]=currColor; repaint();//刷新图形 (x:+(round(x))); (y:+(round(y))); (false); if(gameOver(currColor)){ (g:你输了); =newClientMyDialog(,你赢了); (true); } currColor=currColor==1?2:1;//切换棋子的颜色 } } } }; publicintround(floata){//获得接近a的网格节点坐标 floatf=a/space; (f); } publicClientChessPanel(intspace,intgrids,Clientsktskt){ =space; =grids; =space/2; =skt; setBackground(); setSize(space*grids,space*grids); addMouseListener(playChessHandler); startChess(); } publicvoidstartChess(){ clearGrids();//清空棋盘 c(转载于:写论文网:五子棋联机对战实验报告)urrColor=1; repaint();//刷新图形 } privatevoidclearGrids(){ for(inti=0;i=0y=0){ if(chesses[x][y]==0){ chesses[x][y]=currColor; currColor=currColor==1?2:1;//切换棋子的颜色 (false); (true); repaint();//刷新图形 } } } //判断游戏是否结束 publicbooleangameOver(intgameOver){ intfive=0;//用于判断是否有连续5个子 for(inti=0;i4;k++){/
您可能关注的文档
- 二阶动态电路响应的研究实验报告.docx
- 二阶系统的时间响应分析实验报告.docx
- 二阶变系数常微分方程的求解开题报告-.docx
- 二阶带通滤波电路实验报告.docx
- 二阶系统的阶跃响应实验报告.docx
- 于丹教授演讲的怎样教育孩子.docx
- 于丹老师的演讲观后感.docx
- 于大城演讲后的感言.docx
- 于我校要新增加图书的报告.docx
- 于康震讲话(共4篇).docx
- [日照]2024年山东日照五莲县教体系统招聘急需紧缺专业教师5人笔试典型考题与考点研判含答案详解.docx
- [昭通]2024年云南昭通市中央特岗教师招聘553人笔试典型考题与考点研判含答案详解.docx
- [新疆]2024年新疆兵团教育局直属事业单位招聘73人笔试典型考题与考点研判含答案详解.docx
- [新疆]2024年新疆政法学院招聘辅导员等11人笔试典型考题与考点研判含答案详解.docx
- [惠州]2024年广东惠州卫职院附属医院招聘卫生专业技术人员笔试典型考题与考点研判含答案详解.docx
- 2023年护师类之护师(初级)模拟卷附有答案详解.docx
- [成都]2024年四川成都蒲江县医疗卫生事业单位招聘19人笔试典型考题与考点研判含答案详解.docx
- 护师类之护师(初级)综合提升模拟题库包含答案.docx
- 护师类之护师(初级)综合提升模拟题库含答案讲解.docx
- [晋中]2024年山西晋中职业技术学院引进人才笔试典型考题与考点研判含答案详解.docx
文档评论(0)