1)本书以五子棋游戏制作为背景,介绍使用Java语言进行软件开发的技术与技巧,内容包括单机版五子棋、网络五子棋、棋谱保存与回放、以及人机对战,本书可作为Java程序设计实训、Java课程设计课程的教材,也可以作为毕业设计或游戏编程爱好者的参考书;
(2)本书在写作过程中,始终强调面向对象的编程思想,重点训练Java中的网络编程、数据库编程、界面编程、文件操作以及异常处理等;
(3)教材以五子棋游戏制作为例,提高学生的学习兴趣,激发学生的学习积极性。
Java是目前使用*广泛的语言之一,对于软件开发人员,掌握Java语言基础以及拥有使用Java进行软件开发的能力是非常重要的,因此大多数与计算机相关的专业都开设了Java程序设计课程。
Java程序设计是一门实践性很强的课程,仅仅掌握Java的基本语法知识,与利用Java进行软件开发还有很大的差距。掌握Java基本知识后,应该通过大量的编程实践,逐步提高利用Java进行软件开发的能力。
本书以五子棋游戏制作为例,介绍利用Java进行软件开发的技术。五子棋游戏比较简单,是大家比较熟悉的游戏之一,因此选择五子棋游戏为例,有助于提高学习者的兴趣,易于跟着书中介绍的步骤,一步步将五子棋游戏制作出来。为了简单起见,本书中的五子棋程序不考虑禁手。
本书由4章内容组成,包括单机版五子棋、网络五子棋、下棋数据的保存,以及人机对战;涉及的主要知识有异常处理、输入输出流、数据库编程、多线程和网络编程等。
本书可作为计算机相关专业Java课程设计、Java实训等课程的教材,也可作为学生毕业设计和Java游戏程序爱好者的参考书。
本书的所有程序都由作者亲自编写,并在JDK1.6环境下调试通过,数据库使用的是MySQL数据库。
为了方便教师教学与学生学习,本书为使用本教材的教师提供PowerPoint电子教案,方便教师根据具体情况进行必要的修改,相关资源可以从清华大学出版社网站下载。
本书由宁淑荣、杨国兴主编,参加编写工作的还有庄凤娟、王国芳等。
由于作者水平有限,书中难免有不妥之处,恳请广大读者批评指正。
作者
2017年3月
第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.1Command类添加常量/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.4AlphaBeta搜索方法/124
4.4.1AlphaBeta搜索方法简介/124
4.4.2AlphaBeta搜索方法实现/125
4.5作业/128
作业参考答案/130
参考文献/152