五子棋联机对战实验报告.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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++){/

您可能关注的文档

文档评论(0)

sanshengyuan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档