1. 首页
  2. 编程语言
  3. Java
  4. 网络五子棋游戏文档 Java 课程设计

网络五子棋游戏文档 Java 课程设计

上传者: 2021-04-21 12:07:28上传 DOC文件 14.47MB 热度 8次
网络五子棋只需要包含客户端和服务器端两个窗口,规模比较小,而本模块设计的是独立运行的客户端,不需要服务器。从功能上看,网络五子棋涉及两台主机间的通信,相互需要传递棋子信息、控制指令和文本信息,这需要定义一个应用协议来解释数据报,涉及网络开发的许多知识。 /** 实现登录界面的关键技术,使用了GlassPane面板,它位于窗体的最顶层,Swing默认该面板为隐藏模式。本模块继承JPanel类编写了登录面板,其中包含登录信息的文本框和“登录”按钮等信息,然后调用JFrame窗体的setGlassPane()方法将该面板设置为GlassPenel玻璃面板。程序关键代码如下。 loginPanel1 = new com.lzw.gobang.LoginPanel(); // 创建登录面板的实例对象 /** * 主窗体的构造方法 */ public MainFrame() { initComponents(); // 初始化窗体界面 setGlassPane(loginPanel1); // 设置登录面板为玻璃面板 loginPanel1.setVisible(true); // 显示登录面板 ... ... /** * 处理远程命令的方法 * @param messageObj - 命令代码 */ private void oprationHandler(Object messageObj) { int code = (Integer) messageObj; // 获取命令代码 String towards = frame.getTowardsUser().getName(); // 获取对家昵称 int option; switch (code) { case ChessPanel.OPRATION_REPENT: // 如果是悔棋请求 System.out.println("请求悔棋"); // 询问玩家是否同意对方悔棋 option = JOptionPane.showConfirmDialog(frame, towards + "要悔棋,是否同意?", "求你了,我走错了,让我悔棋!!!", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE); // 在聊天面板添加悔棋信息 frame.appendMessage("对方请求悔棋......."); if (option == JOptionPane.YES_OPTION) { // 如果同意悔棋 frame.send(ChessPanel.OPRATION_NODE_REPENT); // 发送同意悔棋的消息 frame.getChessPanel1().repentOperation(); // 执行本地的悔棋操作 frame.appendMessage("接受对方的悔棋请求。"); // 添加悔棋信息到聊天面板 frame.send(frame.getUser().getName() + "接受悔棋请求"); } else { // 如果不同意悔棋 // 添加不同意悔棋的信息到聊天面板 frame.send(frame.getUser().getName() + "拒绝悔棋请求"); frame.appendMessage("拒绝了对方的悔棋请求。"); } break; case ChessPanel.OPRATION_NODE_REPENT: // 如果是同意悔棋命令 System.out.println("同意悔棋命令"); frame.getChessPanel1().repentOperation(); // 执行本地的悔棋操作 frame.appendMessage("悔棋成功"); // 把悔棋成功信息添加到聊天面板 break; case ChessPanel.OPRATION_NODE_DRAW: // 如果是同意和棋命令 System.out.println("同意和棋命令"); frame.getChessPanel1().getGobangPanel1().setDraw(true); // 设置和棋状态为true frame.getChessPanel1().reInit(); // 初始化游戏状态变量 frame.appendMessage("此战平局。");
用户评论