社区
Java
帖子详情
请问五子棋如何实现悔棋?
tangzhiyou_1129
2010-12-18 01:42:17
最近在做一个五子棋,做好了人与人对战。怎么样才能完现悔棋功能?请大家给点思路?我看到网上用集合类ArrayList实现。看不懂。。。本人太菜了。
...全文
1941
14
打赏
收藏
请问五子棋如何实现悔棋?
最近在做一个五子棋,做好了人与人对战。怎么样才能完现悔棋功能?请大家给点思路?我看到网上用集合类ArrayList实现。看不懂。。。本人太菜了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lbsfeihu
2011-05-31
打赏
举报
回复
学习学习,谢谢分享
tangzhiyou_1129
2010-12-18
打赏
举报
回复
to kill0000002
是的。我刚才就是用栈实现的。哈哈。。。谢谢大家的回答。结贴收工了。
sunyiz
2010-12-18
打赏
举报
回复
其实只要用一个List记录棋子的坐标
下棋就是add进去一个
悔棋就remove一个不就OK了?
kill0000002
2010-12-18
打赏
举报
回复
栈你想用什么实现都可以~~~ 在这只是利用一下栈的 先入后出,后入先出 的特性。
下棋 和 悔棋 恰好就满足这个特性。
kill0000002
2010-12-18
打赏
举报
回复
五子棋底层是一个二维数组~~~ 假如 数组的值 *表示黑棋 0表示白棋 -表示未下棋
在底层在用一个栈 存入每次下棋的坐标(记录下棋的坐标) 要悔棋的话 就出栈得到上一步下棋的坐标
有了上一步下棋的坐标,如果要清除棋子 就把对应的二维数组的值改成- 就可以了
当然还有下棋人的顺序~~~ 你可以根据当前下棋人的顺序,在变更一下就对了。
enicyu
2010-12-18
打赏
举报
回复
依据你一共下多少次,定义一个list或数组,没下一步,就保存, 想悔棋就往前就可以了
mopishv0
2010-12-18
打赏
举报
回复
你可以看看 备忘录模式或者 命令模式
前者是将棋盘全部记录下来 后退时恢复
后者是记录每步的落子的命令与参数 恢复时根据参数恢复
tangzhiyou_1129
2010-12-18
打赏
举报
回复
能不能就放在数组里面,栈也可以数组实现?这样 point last[][]=new point[2][15]。last[0]=存入自己的坐标,last[1]=存入别人的坐标。不能多步悔棋。
tangzhiyou_1129
2010-12-18
打赏
举报
回复
打错了。不好意思!清除棋子。
tangzhiyou_1129
2010-12-18
打赏
举报
回复
to kill0000002
谢谢你的回答,这个我也想过。也简单点吗?数据结构的堆栈实现我知道。但是,怎么具体清楚除棋子?
crm9999
2010-12-18
打赏
举报
回复
他不让悔棋,就不要和他下!
kill0000002
2010-12-18
打赏
举报
回复
可以这样 五子棋底层是一个二维数组 可以用*表示黑棋 0表示白棋 &表示最后下的那颗黑棋 o表示最后下的那颗白棋 要悔棋把&或o取消就可以了~~ 但是也只能悔一步
如果要悔多步的把, 可以在底层用一个栈,每走一步就入栈(把当前走的棋子坐标存入),悔棋就出栈(得到上次走棋的坐标)
tangxheng
2010-12-18
打赏
举报
回复
个人觉得做个缓存,之前的数据不要走完就丢了,悔其可等同于走其,只是数据来源不同,其它就看着办吧。
C语言
实现
五子棋
(双人对战,单人对战,
悔棋
等功能).zip
自己写的课程设计 C语言
实现
五子棋
(双人对战,单人对战,
悔棋
等功能)
五子棋
游戏
实现
悔棋
功能
可
实现
悔棋
功能,java语言编写,界面简单,适合初学者学习
C语言
实现
五子棋
对弈(简单输入坐标下棋,可设置
悔棋
次数版)
题目:
五子棋
对弈 对弈规则如下: 主要功能是
实现
两人之间的对弈,在画好的棋盘上,两个玩家轮流选择自己的落子坐标,然后由
五子棋
系统自动识别判断游戏的进展,知道一方的五子连成一条线或者棋盘已经无法落子时游戏结束。 选定
五子棋
的棋盘大小为19*19,玩家可以在这个棋盘上选择落子坐标位置,通过在棋盘上显示不同的符号来代替不同玩家所下的棋子,“o”代表A玩家,“*”代表B玩家。玩家每次落子之后游戏系统都会对落子位置进行检查,如果落子坐标输入有错应提示错误,并要求玩家继续输入。 当出现同一玩家五子连成一线时,无论是行、列或是对角线的五子连线,都表示玩家游戏胜利,退出游戏 任务:编程
实现
以下功能 1. 欢迎主界面 提示玩家选择游戏开始,结束,设置
悔棋
次数等。 2. 绘制棋盘 该模块要求的功能是
实现
棋盘的显示及棋子的显示,,“o”代表A玩家,“*”代表B玩家。在每次下棋后要对棋盘进行刷新,将棋盘的状态变化为当前最新状态,然后等待另一个玩家下棋。 3. 玩家交替下棋 玩家能在棋盘上下棋,玩家每次选择好下棋的行和列坐标,并在该位置落子。 要求:a.提示当前玩家输入落子坐标 b.能判断用户输入的坐标是否正确(坐标超出范围或该处已有棋子) 4.
悔棋
功能 玩家选择
悔棋
后刷新棋盘,删除前一次的落子,
悔棋
次数有限制。 5. 输赢判断 判断输赢模块的作用是每次玩家落子后判断是否已分出胜负,如果是,则返回胜利者相关信息。 6. 设计丰富的用户界面,方便用户操作 设计要求: ① 根据以上功能需求,自己定义合适的数据结构,并说明原因; ② 每个功能能提供友好的用户界面,方便用户操作。
h5
实现
五子棋
,包括
悔棋
,清空,保存,载入,人机对战等基本功能
h5
实现
五子棋
,包括
悔棋
,清空,保存,载入,人机对战等基本功能
MATLAB
实现
五子棋
游戏(双人对战、可
悔棋
)
主要为大家详细介绍了MATLAB
实现
五子棋
游戏,可以进行双人对战、也可
悔棋
,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java
50,526
社区成员
85,605
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章