第1章 单机版五子棋游戏 1
1.1 五子棋游戏窗口制作 1
1.2 创建棋盘类 2
1.2.1 准备图片 2
1.2.2 棋盘类的创建 2
1.2.3 显示棋盘 3
1.3 创建棋子类 4
1.3.1 棋子类 4
1.3.2 在棋盘上画出棋子 6
1.4 实现单击鼠标下棋 6
1.5 判断赢棋 8
1.6 实现工具栏上的功能 11
1.7 改变鼠标的形状 13
1.8 作业 13
第2章 网络五子棋 15
2.1 服务器端界面制作 16
2.2 创建客户端界面 17
2.2.1 创建主窗口和棋盘 17
2.2.2 创建客户端界面右侧的3个类 18
2.2.3 创建客户端界面下方的控制面板类 21
2.3 实现“连接主机”按钮的功能 22
2.3.1 连接服务器获取用户名 23
2.3.2 将已经连接的客户端添加到用户列表中 26
2.4 实现“加入游戏”按钮的功能 31
2.4.1 客户端申请加入后对方选择同意或拒绝 31
2.4.2 完成猜棋并准备好下棋 37
2.5 实现下棋功能 41
2.5.1 客户端向服务器发送下棋消息 41
2.5.2 服务器接收消息并处理 43
2.5.3 客户端接收消息并处理 43
2.6 实现“放弃游戏”的功能 45
2.6.1 Command类添加常量 46
2.6.2 添加“放弃游戏”的响应代码 46
2.6.3 在Communication类中添加giveup()方法 46
2.6.4 服务器接收giveup命令并处理 46
2.7 加入计时功能 47
2.7.1 设计计时线程类 47
2.7.2 猜先后启动倒计时线程 48
2.8 完善“关闭程序”按钮的功能 49
2.8.1 在Command类中添加命令 49
2.8.2 客户端向服务器发送命令 49
2.8.3 服务器处理quit命令 50
2.8.4 客户端处理delete命令 50
2.9 作业 51
第3章 下棋数据的保存 52
3.1 创建数据库 52
3.1.1 数据库设计 52
3.1.2 创建数据库 53
3.2 用户管理 55
3.2.1 数据库连接类 55
3.2.2 用户管理 56
3.3 用户注册和登录 61
3.3.1 准备工作 62
3.3.2 用户登录 62
3.3.3 用户注册 67
3.4 记录棋局和棋谱 71
3.4.1 记录棋局 71
3.4.2 记录棋谱 77
3.5 查询棋局和棋谱欣赏 80
3.5.1 查询棋局 81
3.5.2 棋谱欣赏 85
3.6 作业 90
第4章 人机对战 91
4.1 准备工作 91
4.1.1 在主程序中添加复选框 91
4.1.2 在棋盘类中添加成员变量 92
4.1.3 棋盘类中添加方法以及修改已有的方法 92
4.2 计算机智能下棋 95
4.2.1 处理棋盘类中的数据成员 95
4.2.2 五子棋的棋型与估值 97
4.2.3 创建估值类Evaluate 100
4.2.4 实现计算机智能下棋 111
4.3 极小极大搜索法提高下棋水平 112
4.3.1 极小极大算法与棋局的评价 113
4.3.2 极小极大算法的实现 115
4.4 Alpha-Beta搜索方法 124
4.4.1 Alpha-Beta搜索方法简介 124
4.4.2 A1pha-Beta搜索方法实现 125
4.5 作业 128
作业参考答案 130
参考文献 152