贪心策略java实现代码 贪心策略是什么( 四 )


算法设计部分
Java语言是面向对象的语言 。我在进行五子棋游戏编程是总共传创建了11个自定义的类 。在编写程序的过程中,我有一个明显的体验就是面向对象编程就是一项有关对象设计和对象接口技术,很多关键的技术就是如何设计自定义的对象 。
下面我先概括给出我的所有类的作用:
1.mainFrame类:主框架类,我应用程序的入口;
2.chessPositon类:主控类,这个类是我程序的核心类 , 负责控制双方的下棋,以及调用其他的类完成当前棋局的显示绘制;
3.chessPanel类:面板类,调用其他底层类完成当前棋局的显示绘制;
4.chessBoard类:棋盘绘制类,负责棋盘的绘制;
5.chessImage类:文件类 , 包含各种资源(背景图片、背景音乐)以及静态全局变量(public static Type);
6.chessButton类:组件类,定义各种组件,包括按钮、单选按钮、文本框等;
7.chessMusic类:音乐类,负责调用Java库类完成背景音乐、下棋音乐、取胜音乐等的播放;
8.chessPiece类:棋局类 , 定义棋局二维数组数据结构并完成相关操作;
9.chessList类:栈类,完成悔棋等操作;
10. chessOneStep类:棋子类 , 定义每步坐标以及下在该处获得的估价值;
11.myCompare类:排序类,完成chessOneStep类的自定义排序
详细设计
1.mainFrame类
作为我的五子棋程序的主类,mainFrame类主要实例化相关的对象 , 如chessbutton,chessborad等,从而完成框架的创建 。更重要的是实例化chessposition , 这是本程序的核心类,控制游戏双方行棋过程完成人机互动下棋,然后将MyChessPosition与鼠标响应addMouseListener()关联起来 。
2.chessMusic类
一个好的游戏必须给人一种身临其境的感觉,而声音是营造这种氛围的重要因素 。参照网上各游戏运行商的音乐配置,我选择相关逼真的声音 。包括背景音乐、下棋棋子落到棋盘发出的声音以及一方胜出的配乐 。所有这些功能的实现,依赖于自定义的chessMusic类,采用AudioInputStream配合Clip的方式完成音乐播放的软硬件工作 , 然后定义两个接口chessmusic(String Name)和Stop(),前者完成播放功能,后者完成关闭当前音乐功能 。因为音频文件相对较大 , 而我的程序提供在不同背景乐之间切换的功能 , 所以在打开另一个音频文件之前必须关闭前一个正在播放的音频文件 , 防止出现溢出 。
3.chessImage类
适当的动画或图片能给游戏玩家带来美的体验 。所以我的五子棋程序界面在不失和谐的前提下引入了尽可能多的图片,包括对弈双方、棋钵等 。图片引入的具体工作通过语句import javax.imageio.ImageIO完成 。同时,由于图片要在用到它的类中被访问,为了避免频繁调用函数,我直接将图片相关联的对象定义为public static,表明是公用的、静态的 。进一步引申开去,我将程序中用到的静态全局变量都定义在chessImage类中 。具体如下:
public static Date begin;//每局开始时间
public static Date cur;//每局结束时间
public static chessOneStep LineLeft;//结束端点1
public static chessOneStep LineRight;//结束端点2
public static boolean IsGameOver;//是否只有一方获胜
public static int ColorOfBackGround[][]= {{255, 227, 132},{0,255,127},{218,165,32}};//背景颜色
public static int ColorOfWindows[][]= {{ 60,179,113},{245,245,245},{122,122,122}};//背景颜色
public static int WitchMatch;//背景搭配
public static String MusicOfBackGround;//背景音乐
public static int CurrentStep;//记录当前步数
public static int Rank;//设置难度等级

推荐阅读