博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS+Canvas的棋盘游戏和Java的动态结合
阅读量:6843 次
发布时间:2019-06-26

本文共 1053 字,大约阅读时间需要 3 分钟。

二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏.

因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的.

首先生成15*15的棋盘,(先不考虑前后端交互),其后HashMap作为棋盘数据容器,用来接收黑棋或者白棋的设置.

比如说:

HashMap<String,String> goBang = new HashMap<>();

其后 15A 与 白棋 分别作为 key 和 value ,put到goBang

/* snapshot    public static void main(String[] args) {        HashMap
goBangMap = new HashMap<>(); goBangMap.put("15A","白棋"); }

15A是棋盘坐标系.如图:

随后,白棋下子完成,这时候应该是设置一个裁判来检测棋盘的下子,是否有连成5个子的,也就是说,每一步棋之后(或者在先手的执行完第五步开始进入该裁判方法)

该裁判类应该去遍历整个棋盘,查看是否有连5个子的,该裁判应该去遍历整个棋盘,是否已无位置可以下子,或者说再怎么下子也无一方会获胜,则裁定程序结束(胜出 / 平局)

难点还在于判定每个角与边.(与细胞自动机不同的是,这个棋子(细胞)要判定的不再仅仅是周围的8个元素了,而是可能很多个以及位置不再像CellMachine那样固定.

比如说,最后黑棋落子形成了5连子,其他4个的位置连在它的左上方,这时候该如何判定?)

也许可以渐进性地去推断: 当有两个相连接时,判定两个子分别两端+1位置(+1指的是恰能组成5连子的位置的下个位置) 是否还有该颜色棋子.如果首端没有+1的,那么判断尾端是否有+1,如果true,

再判定+1位置的+1位置是否有该颜色棋子.直到这个true不满足5个,则取消该首尾棋子的判定,并且,如果该首尾列两端+1位置均为另一颜色,或者一端无法放置棋子,没有形成5连子,则应再下次裁定时

取消对该首尾列的判定(去除)

待续

 

2018.07.27整体的后台Java代码加判断棋子5连胜出的裁判类都做好了,那么应该再就是前端的棋盘生成以及棋子生成和Web端的事件监听和数据传导了

 

将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起,现实通往二进制的大门即将被打开。

转载地址:http://frdul.baihongyu.com/

你可能感兴趣的文章
最长公共前缀
查看>>
同是ZooKeeper,你和架构师的理解差在哪里?
查看>>
你的心情如何?镜头「读脸」读出你的心情与隐私之间
查看>>
【更新指南】BarTender正式迎来2019 R2重大版本更新!
查看>>
2019年在哪里找好的高层次人才扶持政策?
查看>>
解决代码报红:Cannot resolve symbol 'xxx'
查看>>
第71节:Java中HTTP和Servlet
查看>>
Linux开源CommunityBridge平台 提供资金、安全以及人员三项关键
查看>>
Python爬虫入门教程 5-100 27270图片爬取
查看>>
Day1:html和css
查看>>
开源如何在云上存活?
查看>>
Android 网络基础之 HTTP
查看>>
ES6实现继承
查看>>
有擎企业系统v1.0.0 积木式搭建网站,页面构建更灵活
查看>>
小葵花妈妈课堂开课了:《Handler Looper Message 浅析》
查看>>
【Electron】酷家乐客户端开发实践分享 — 入坑篇
查看>>
浅谈Git、Github、码云的关系
查看>>
Cocos2dx源码记录(7) CCGLProgramState
查看>>
微信小程序实现商城案例(赋源码)
查看>>
Objective-C内存管理
查看>>