1、目目 录录 一、课程设计任务及要求 1 二、需求分析. 1 2.1 棋盘板块 .1 2.2 聊天板块 .1 2.3 ChatSever .1 2.4 编译环境 .1 2.5 参考资料 .1 三、设计思路. 1 3.1 板块的显示 .1 3.2 注册监听 .2 3.3 ChatServer . 2 3.4 下棋 .2 四、详细设计. 3 4.1 WuZiQi 类 3 4.2 ChatSever 类 4 4.3 多用户聊天 5 4.4 流程图 .6 五、运行调试与分析讨论 7 六、设计体会与小结 . 9 七、参考文献. 10 第 1 页 一、课程设计任务一、课程设计任务及要求及要求 1、五子棋游戏
2、室界面:用户可以选择对弈桌及角色(执黑、执白、旁观) ; 2、游戏界面:有开始、退出、悔棋、判断胜负;发言及显示区;用户列表 区;棋盘绘制区; 3、使用 Socket 来完成服务端和客户端的通信; 4、使用多线程技术支持多用户操作; 5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接 受消息、多人聊天等功能;使用数据库保存用户信息。 二、需求分析二、需求分析 2.1 棋盘板块 画一个 1515 的棋盘版面,及两个按钮组。初始化:开始、重置、 退出;角色选择:黑方、白方、旁观。 2.2 聊天板块 聊天信息显示区,聊天信息输入区。 2.3 ChatSever 模拟服务器:用于桥接不
3、同用户,实现接收用户发出的信息,然后 将信息传递到每个用户的聊天窗口。 2.4 编译环境 Eclipse 实验室上机 在宿舍编写 2.5 参考资料 Java 语言使用教程,百度文库资料(五子棋判断胜负算法) 。 三、设计思路三、设计思路 3.1 板块的显示 画棋盘 调用public void paint(Graphics g)QiPan(g);方法 画一个1515的棋盘面版。 初始化 定义两个 Panel P1、P2,在初始化板块将 JButton 开始、 重置,退出加入到 P1,将黑方、白方、旁观加入到 P2。 第 2 页 聊天板块 在初始化时定义一个JTextArea 和一个JTextFi
4、eld 实现聊 天功能 3.2 注册监听 对角色选择按钮注册ActionListener监听,设置用户的角色。定义黑子 int类型 0,白子1。 对按钮开始、重置注册ActionListener监听,如果点击开始,用户进 入 下棋状态,有一方赢了,棋盘上则不能再点击棋子。点击重置,则开始新 的一轮。 对鼠标注册mouseClicked监听,鼠标点击棋盘时获取下棋的位置。 对JTextField注册ActionListener,用户输入聊天信息后,通过Server 传递给其他用户,在对话框JTextArea内显示。 3.3 ChatServer class ServerThread implements Runnable 类监听线程,监听是否有客 户端法过信息来。 属性: Vector threads 向量存储线程 Socket socket 服务端口 DataInputStream in 输入流 DataOutputStream out 输出流 int nid 用户ID 方法: 构造器public ServerThread(Soc