作者carlcarl (carl)
看板java
标题[问题] "播放"围棋棋谱的问题
时间Mon Aug 4 01:11:22 2008
请问一下
我是想写个JavaApplet 来播放围棋棋谱
档案格式 就以.sgf为主
虽然还没到这个进度 不过还是想问一下:
判断"气"的话 怎麽判断才好?
一块棋如果气都被没了 那就代表要被提掉
然後每一手(步) 都要做气的判断.....
我的话大概会先设个二维阵列叫做main
空的代表0 黑代表1 白代表2 3表示已经寻访过的
判断要不要提子的方法就是用两个递回的程式(一个是黑 一个是白)
(先假设是黑)
先设一个广域bool变数为false
另外复制上面那个二维阵列叫做copy
从copy第一格开始 判断 如果是0,2,3的话跳过
1的话 就丢递回 从四个方向开始跑
-------------------------------------
如果变数为true 就return
1就继续递回 并设为3
2 和 3就return
0的话 设变数为true 并return
--------------------------------------
跑完第一格的之後 如果变数为true
就再跑一次递回 将这块都设为0
接着移到下一格再重复上面的步骤...
跑完这361格之後
将copy 覆盖到原来的阵列这样
我在想速度会不会很慢啊= =a
因为还要再画图形...........
还是有其他什麽比较快的方法??@@
另外 还有什麽需要注意的吗
打劫的话 因为只有播放 所以应该没什麽差@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.193.84
1F:推 H45:有看过 Jago 的原始码吗? 08/04 10:09
2F:→ carlcarl:刚刚看了一下 还真是......看不懂 orz 08/04 13:10
3F:推 H45:是啦,注解有点少,只能慢慢追.... 08/04 13:19
4F:推 etrexetrex:每一手棋只要判断 会不会包住他上下左右的对手就好吧? 08/04 19:28
5F:→ carlcarl:嗯 好像有道理耶 这样就只需要对四个方向做递回找就好了 08/04 19:40
6F:推 sss2500:感觉每手都递回搜寻的话可能速度上会有问题,有没有考虑过 08/06 11:17
7F:推 sss2500:每个落子都有个属性叫"气"...然後新落子会参考邻近己方的 08/06 11:19
8F:推 sss2500:气数.然後同步更新~ 怕同步数量多的话还有其他解决方法XD 08/06 11:22