五子棋java课程设计

五子棋java课程设计

ID:10714351

大小:227.50 KB

页数:20页

时间:2018-07-07

五子棋java课程设计_第1页
五子棋java课程设计_第2页
五子棋java课程设计_第3页
五子棋java课程设计_第4页
五子棋java课程设计_第5页
资源描述:

《五子棋java课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、华东交通大学课程设计报告目 录一、课程设计任务及要求1二、需求分析12.1棋盘板块12.2聊天板块12.3ChatSever12.4编译环境12.5参考资料1三、设计思路13.1板块的显示13.2注册监听23.3ChatServer23.4下棋2四、详细设计34.1WuZiQi类34.2ChatSever类44.3多用户聊天54.4流程图6五、运行调试与分析讨论7六、设计体会与小结9七、参考文献10华东交通大学课程设计报告一、课程设计任务及要求1、五子棋游戏室界面:用户可以选择对弈桌及角色(执黑、执白、旁观);2、游戏界面:有

2、开始、退出、悔棋、判断胜负;发言及显示区;用户列表区;棋盘绘制区;3、使用Socket来完成服务端和客户端的通信;4、使用多线程技术支持多用户操作;5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接受消息、多人聊天等功能;使用数据库保存用户信息。二、需求分析2.1棋盘板块画一个15×15的棋盘版面,及两个按钮组。初始化:开始、重置、退出;角色选择:黑方、白方、旁观。2.2聊天板块聊天信息显示区,聊天信息输入区。2.3ChatSever模拟服务器:用于桥接不同用户,实现接收用户发出的信息,然后将信息传递到每个用户

3、的聊天窗口。2.4编译环境Eclipse实验室上机在宿舍编写2.5参考资料Java语言使用教程,百度文库资料(五子棋判断胜负算法)。三、设计思路3.1板块的显示画棋盘调用publicvoidpaint(Graphicsg){QiPan(g);}方法画一个15×15的棋盘面版。初始化定义两个PanelP1、P2,在初始化板块将JButton开始、重置,退出加入到P1,将黑方、白方、旁观加入到P2。第19页华东交通大学课程设计报告聊天板块在初始化时定义一个JTextArea和一个JTextField实现聊天功能3.2注册监听对角色

4、选择按钮注册ActionListener监听,设置用户的角色。定义黑子int类型0,白子1。对按钮开始、重置注册ActionListener监听,如果点击开始,用户进入下棋状态,有一方赢了,棋盘上则不能再点击棋子。点击重置,则开始新的一轮。对鼠标注册mouseClicked监听,鼠标点击棋盘时获取下棋的位置。对JTextField注册ActionListener,用户输入聊天信息后,通过Server传递给其他用户,在对话框JTextArea内显示。3.3ChatServerclassServerThreadimplements

5、Runnable{}类监听线程,监听是否有客户端法过信息来。属性:Vectorthreads向量存储线程Socketsocket服务端口DataInputStreamin输入流DataOutputStreamout输出流intnid用户ID方法:构造器publicServerThread(Socketsocket,Vectorthreads)实现信息的输入、输出实现publicvoidrun()监听客户端是否发信息过来,当客户离开时向其他客户发信息,把客户端的信息发给其他客户。服务器向客户端发信息publicvoidwrite

6、(Stringmsg)获取线程IDpublicintgetID()设置线程IDpublicvoidsetID(intnid) 在Chatserver类内调用ServerThread实现对所有来访客户监听,为来访者设置ID,若有离开用户,则在聊天板块广播。3.4下棋用二维数组模拟棋盘chessbody[17][17],黑方下棋,则黑方所下棋位置的值等于旗子的颜色加一,白方类似。最后1代表下了黑棋,2表示下了白棋,0表示没下棋。从横向、纵向、斜方向判断胜负。下完一步判断一次,有一个方向上同色棋子数超过5,则胜负已判断。第19页华东

7、交通大学课程设计报告四、详细设计4.1WuZiQi类属性:intcolor_Qizi=0;黑子0白子1intChessBody[][]=newint[17][17];无棋子0,黑棋1,白棋2;intGameStart=0;JButtonstart,exit,rest;JButtoncheck[]=newJButton[3];Stringchess[]={"黑方","白方","旁观"};方法:获取下棋位点publicvoidmouseClicked(MouseEvente){//Graphicsg=getGraphics();i

8、ntx,y;x=e.getX();y=e.getY();//鼠标点击位置if(x<45

9、

10、y<45

11、

12、x>495

13、

14、y>495){return;}//在棋盘之外则不下if(x%30>15)//获取下棋点的位置{x+=30;}if(y%30>15){y+=30;}x=x/30*

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

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

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