[align=center][size=medium]五子棋总结[/size][/align]
一 窗体设置
窗体分为两部分,一部分是五子棋棋盘的绘制,一部分是人机对战、人人对战选择面板的绘制,用到的还是JFrame、JPanel。五子棋棋盘用重绘方法重写JFrame中Paint方法,将棋盘线条绘制在棋盘面板上;将人机对战、人人对战按钮添加在新面板上并将新面板添加到程序窗体上。
二 添加监听器 人人对战的实现
在棋盘面板上添加鼠标监听器,并在人机对战、人人对战选择按钮上添加动作监听器,使得鼠标选择人机对战或是人人对战时产生不同的对战效果。在棋盘上添加鼠标监听器,在人人对战中,使得鼠标点击时,在棋盘中绘制黑棋或是白棋,棋子颜色通过定义的整形count的数值改变来改变,每点击一次,count大小改变一次,棋子颜色改变一次。又通过在鼠标点击的坐标的一定范围内限定棋子绘制的位置来保证棋子绘制在棋盘上横向线与纵向线的交叉处。
三 胜负判断
建立二元数组chess,把所绘制的棋子的位置和颜色存储起来,在Paint方法中重绘,并且在输赢判断的方法中统计每颗棋子周围相同颜色的棋子个数,用numb计数,当横向或者纵向或者斜向出现相同颜色的五颗棋子时,判定该颜色胜出。
四 人机对战的实现
列出权值表,在鼠标点击下棋之后,程序判断所下棋子的位置附近未下棋子位置的权值,在权值最大的地方下一颗颜色相反的棋子。
五 程序优化
包括界面美化、权值表的优化使程序更为美观、完善,我的五子棋程序还未进行最后的美化,目前依然比较粗糙。
一 窗体设置
窗体分为两部分,一部分是五子棋棋盘的绘制,一部分是人机对战、人人对战选择面板的绘制,用到的还是JFrame、JPanel。五子棋棋盘用重绘方法重写JFrame中Paint方法,将棋盘线条绘制在棋盘面板上;将人机对战、人人对战按钮添加在新面板上并将新面板添加到程序窗体上。
二 添加监听器 人人对战的实现
在棋盘面板上添加鼠标监听器,并在人机对战、人人对战选择按钮上添加动作监听器,使得鼠标选择人机对战或是人人对战时产生不同的对战效果。在棋盘上添加鼠标监听器,在人人对战中,使得鼠标点击时,在棋盘中绘制黑棋或是白棋,棋子颜色通过定义的整形count的数值改变来改变,每点击一次,count大小改变一次,棋子颜色改变一次。又通过在鼠标点击的坐标的一定范围内限定棋子绘制的位置来保证棋子绘制在棋盘上横向线与纵向线的交叉处。
三 胜负判断
建立二元数组chess,把所绘制的棋子的位置和颜色存储起来,在Paint方法中重绘,并且在输赢判断的方法中统计每颗棋子周围相同颜色的棋子个数,用numb计数,当横向或者纵向或者斜向出现相同颜色的五颗棋子时,判定该颜色胜出。
四 人机对战的实现
列出权值表,在鼠标点击下棋之后,程序判断所下棋子的位置附近未下棋子位置的权值,在权值最大的地方下一颗颜色相反的棋子。
五 程序优化
包括界面美化、权值表的优化使程序更为美观、完善,我的五子棋程序还未进行最后的美化,目前依然比较粗糙。