网络编程五子棋设计报告 - 下载本文

isOnChess = false; isCreator = false;

userControlPad.createButton.setEnabled(true); userControlPad.joinButton.setEnabled(true); userControlPad.cancelButton.setEnabled(false); ec.printStackTrace(); } }

if (e.getSource() == userControlPad.cancelButton) { // 退出游戏按钮单击事件 if (isOnChess) { // 游戏中

firPad.gameThread.sendMessage(\ + chessClientName);

firPad.setVicStatus(-1 * firPad.chessColor); userControlPad.createButton.setEnabled(true); userControlPad.joinButton.setEnabled(true); userControlPad.cancelButton.setEnabled(false); firPad.statusText.setText(\请创建或加入游戏!\); }

if (!isOnChess) { // 非游戏中

userControlPad.createButton.setEnabled(true); userControlPad.joinButton.setEnabled(true); userControlPad.cancelButton.setEnabled(false); firPad.statusText.setText(\请创建或加入游戏!\); }

isParticipant = isCreator = false; } }

测试与分析

程序完成后,首先启动服务器,如图:

第 22 页 共 4页

然后打开两个客户端界面,

第 23 页 共 4页

分别点击连接服务器,然后可以看到出现了新玩家5,6

然后其中一个创建游戏,另一个再选中该用户,选择加入游戏,就可以进行游戏

完成一盘游戏后,会显示哪一方获胜,并且自动交换先后手进行下一盘游戏。点击放弃游戏后,会提示重新创建或者加入游戏。

测试中遇到的问题是,用户列表中中文字符不能正常显示。

结 论

本程序设计了五子棋的对弈算法,以及java网络编程,多线程编程等方法。是用了Socket来创建套接口,进行网络通信。同时通过多线程的设计模式,可以同时支持多组用户进行游戏。

参考文献

Java2 核心技术 机械工业出版社 叶乃文等编译 Java面向对象程序设计 清华大学出版社 瞿中等译編

第 24 页 共 4页