我的五子棋策略大概是这样的:
主界面:放各种游戏按钮,人人对战、人机对战;以及各种需要传递的参数。
棋盘界面:画棋盘,画棋子,重绘实现。
菜单: 存放各种游戏信息按钮。
鼠标监听类: 各种鼠标监听。
动作监听: 各种动作监听。
界面和主要类大概就是这些,然后是实现功能,首先是画棋盘,利用坐标写在重绘界面上就可以了,不难,
然后我们来实现人人对战,主要策略就是一人下一颗棋,黑白交替,所以我们需要一个标志位sign,下一颗棋就改变一次,然后下棋需要下在坐标的正中间,所以我们需要判断,当鼠标点击在正坐标的周围(确定一定的误差值),那么就在该坐标点下棋,下完一颗棋,这一点就不能再下了,所以我们还需要一个标志位组sign2[][],未下棋置0,已下黑棋置1,已下白旗置2,这样当我们判断输赢的时候就可以靠这些坐标来下。
下完一颗棋就要判断一次输赢,看是否满足输赢条件,这个方法的策略是,以当前下的棋子为中心,向该棋子的8个方向探索,如果有满足连续的5个sign2[][]为1的,那么可以判定赢了,在看sign2是2或者是1来判定赢的是哪一方。
下棋就需要重绘,这个跟画图盘重绘是一个道理,创建一个数组,每下一次棋,就保存在数组里,重绘时就将数组里的元素重新画出来。
下完一盘棋,即已判定谁输谁赢后,就需要把棋盘清空,即把数组清空,然后在更新一下棋盘界面,这时,棋盘恢复,又可以重新下棋了。
然后是悔棋,人人的悔棋需要在点击悔棋按钮后删除棋子数组中的末尾元素,然后更新棋盘,同时要注意的是必须改变标志位sign2的在当前悔棋坐标的值,改为0,表示这又可以下棋了,否则,悔过棋的坐标将无法再下棋,就会留下很多真空。
人机主要是要弄清楚算法,我简单的来说:首先,人先下一颗棋,然后电脑就要下一颗棋,操作不难,但是应该下在什么坐标呢?这时我们需要计算每个坐标的“权值”。所谓权值就是坐标的重要性,当用户下一颗棋时,该坐标周围8个坐标应该是比较重要需要堵死的,且让权值加1,然后顺着这个坐标来看如果有连续的2个子,3个字,或者是4个子,我们就把他们两端的权值加5,50,500,然后,如果其中有一边被堵了,尤其是3个子,那么就不要么重要了,权值可以减30;当然4个字不存在这种情况,这样就行了。当然,你也要给点药颜色的子周边加权值,别只是一味的堵,自己的子有4个了还不知道赢。
已下是我做的一个五子棋。
- 大小: 535.7 KB
分享到:
相关推荐
ENViews, 一个华丽丽的动效控件库,所有控件原型取自Nick Buturishvili的设计作品 Preview Original design Android demo Class ENDownloadView ENVolumeView ENLoadingView ENPlayView ...
"华丽丽的按钮大全"这个压缩包文件正是为满足这种需求而提供的资源集合,它包含了丰富的按钮素材,适合美工人员在设计工作中使用。 首先,我们来详细了解一下Photoshop。Adobe Photoshop是由Adobe Systems开发的一...
更有一些网站有华丽丽的JS特效。 36个网站中包含了各行各业的网页设计,譬如图片站、门户站、企业站、宠物站、资讯站等等,而且足够让您欣喜的是绝大多数资源还不仅仅是一个主页面,更有文章页、列表页、关于我、...
在这个案例中,“华丽丽的水彩鱼开机动画”是针对Windows 7系统设计的一款个性化开机动画,其灵感来源于Windows 8.1预览版的开机画面。 Windows 7作为一款广泛使用的操作系统,虽然其默认的开机动画已经很经典,但...
更有一些网站有华丽丽的JS特效。 是的,在您看过之后,如果您真觉得不错,或者需要下载后续百来个网站的话,欢迎您评论,给予@贝斯特_岳 和优设哥一些动力。因为这些网站确实是我们精挑细选出来的一些非常漂亮的资源...
上手科技微营销总裁班第期“华丽丽”落幕上手喜羊羊-1页.pdf
7. **前端框架**:为了提升开发效率和代码结构的规范性,开发人员可能使用了Vue.js、React.js或Angular.js等前端框架,它们提供了组件化的开发模式和数据绑定等功能。 8. **响应式设计**:考虑到不同设备的屏幕大小...
更有一些网站有华丽丽的JS特效。 是的,在您看过之后,如果您真觉得不错,或者需要下载后续百来个网站的话,欢迎您评论,给予@贝斯特_岳 和优设哥一些动力。因为这些网站确实是我们精挑细选出来的一些非常漂亮的资源...
3RVX是一款小巧而强大的音量控制工具,专为Windows用户设计,旨在提供更为美观且个性化的音量调节体验。这款软件的核心特点是它的便捷性和自定义性,使得用户能够更轻松、更直观地管理系统的音频输出。...
与之前那人做的版本相比 使之可以点击非item项既空白处亦或右滑来将显示了的项隐藏起来; 使之点击删除消失的时候不会那么容易... ... ... ...使之可以指定第几项不许滑动;...使之可以设置为全不许滑动,亦或全部可以滑动的状态。
作者codeestX,源码ENViews,ENViews, 一个华丽丽的动效控件库,所有控件原型取自Nick Buturishvili的设计作品 本项目为个人练习,发现问题或有建议欢迎issue,email(codeest.dev@gmail.com),PR. 如果你喜欢这些效果...
所有网站都采用CSS控制样式展现,木有table,都是DIV控制布局...更有一些网站有华丽丽的JS特效。 是的,在您看过之后,如果您真觉得不错,或者需要下载后续百来个网站的话,欢迎您评论,给予@贝斯特_岳 和优设哥一些...
所有网站都采用CSS控制样式展现,木有table,都是DIV...更有一些网站有华丽丽的JS特效。 36个网站中包含了各行各业的网页设计,譬如图片站、门户站、企业 站、宠物站、资讯站等等,更有文章页、列表页、产品页面等等!
代码可以经过你自己的修改后使用。我的目的:第一个目录假设有3000个txt文档。通过编译生成了2700个文件。那有300个文件没有生成出来,如果没有报错日志,这下麻烦了。所以通过这个方便快速的找出来。
html滑动删除实现,谁说只有java才可以实现华丽丽的页面,一段js代码也可以实现这种效果,移动站、微信开发必备之特效。
---------------------华丽丽的分割线-------------------------- PickerView1.x (我已经把1.0.3版本分到v1.x的分支去了,停止维护1.x的分支) 使用gradle 依赖: ...
2、华丽丽的登录界面,看似华丽却也内部有料,还是看图更有说服力。 3、稻壳CMS携手稻壳网一起打造企业建站一体化服务云平台,让企业用户有更多的选择,无论是企业建站还是选择更好的空间服务商,或者网站升级开发...
2、华丽丽的登录界面,看似华丽却也内部有料,还是看图更有说服力。 3、稻壳CMS携手稻壳网一起打造企业建站一体化服务云平台,让企业用户有更多的选择,无论是企业建站还是选择更好的空间服务商,或者网站升级开发...