五子棋对战实验报告

五子棋对战实验报告

ID:38669486

大小:792.52 KB

页数:15页

时间:2019-06-17

五子棋对战实验报告_第1页
五子棋对战实验报告_第2页
五子棋对战实验报告_第3页
五子棋对战实验报告_第4页
五子棋对战实验报告_第5页
资源描述:

《五子棋对战实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验项目五子棋网络对战和聊天实验日期20160406实验报告要求:一、实验目的:学习和使用socket编程,熟练软件开发二、实验原理:使用socket进行网络通信,java作为编程语言三、实验要求:编写五子棋程序可以实现联机网络对战,并且可以进行聊天四、实验步骤、结果(程序+注释+截图)及分析:首先拟定编程语言与开发方案,选择java语言,考虑到java可以跨平台运行,然后决定把这个程序拆分为客户端、服务器两个部分,每个部分再分成5个小的部分实现不同功能。1、然后考虑使用java的swing包,创建ClientChessPanel类负责棋盘部分,包括判断

2、输赢,使用数组chesses[i][j]记录棋盘上棋子的分布,对数组进行不同的赋值表示网格节点上无棋、黑棋、白棋;使用playChessHandler作为鼠标单击事件,单击事件调用Clientskt中的函数传送棋子坐标以及输赢信息。drawChess函数画棋子,drawGrids画网格,gameOver判断棋盘棋子分布,输赢情况。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importChatOneToOneClient.Clientskt;classClientChessPan

3、elextendsJPanel{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=n

4、ewint[grids+1][grids+1];privateintcurrColor=1;//当前棋的颜色privateMouseListenerplayChessHandler=newMouseAdapter(){publicvoidmouseClicked(MouseEvente){if(skt.reMouseGo()){intx=e.getX();inty=e.getY();//放一颗棋子15if(x<=grids*space&&x>=0&&y<=grids*space&&y>=0)if(chesses[round(x)][round(y)]==

5、0){chesses[round(x)][round(y)]=currColor;repaint();//刷新图形skt.dataout("x:"+String.valueOf(round(x)));skt.dataout("y:"+String.valueOf(round(y)));skt.setMouseGo(false);if(gameOver(currColor)){skt.dataout("g:你输了");skt.chat.clientDialog=newClientMyDialog(skt.chat,"你赢了");skt.chat.clien

6、tDialog.setVisible(true);}currColor=currColor==1?2:1;//切换棋子的颜色}}}};publicintround(floata){//获得接近a的网格节点坐标floatf=a/space;returnMath.round(f);}publicClientChessPanel(intspace,intgrids,Clientsktskt){this.space=space;this.grids=grids;this.radius=space/2;this.skt=skt;setBackground(Colo

7、r.BLUE);setSize(space*grids,space*grids);addMouseListener(playChessHandler);startChess();}publicvoidstartChess(){clearGrids();//清空棋盘currColor=1;repaint();//刷新图形}privatevoidclearGrids(){for(inti=0;i<=grids;i++)for(intj=0;j<=grids;j++)chesses[i][j]=0;15}//画一颗棋子privatevoiddrawChess(

8、Graphicsg,intx,inty,intcolor){g.setColor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。