我在尝试编写一个dos下三子棋小游戏 3*3井子格中先3子连成一条线的赢
我打算用三个位置的数字的和为15的方法进行判断
6 7 2
1 5 9
8 3 4
三个数字的和是15时则是三子连成一线。
现在我遇到了 可能是三子连线和却不是15的情况 不知如何改进 求指教
例如:
先手下子位置
6 7
1
当我在下到
6 7 2
1
时获胜 可是现在的和已经是16了 不能用15判断
不知道有没有办法解决
这个方法是自己想的 不知道行的通么。。。
C++三子连珠编程问题
答案:1 悬赏:20 手机版
解决时间 2021-02-08 11:00
- 提问者网友:聂風
- 2021-02-07 23:42
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-02-08 00:16
九宫格的这个思路其实有个限制:
就是只允许有三个棋子。
这里两个思路:
1 如果一定要使用九宫格的方式,那么判断逻辑应该是将已经下的棋子中,取所有三个棋子的组合,判断加起来是不是等于15。任一组合等于15,表示胜利。不过也有优化的地方,只判断所有组合中包含最后一步棋子的组合来计算。
2 1的那种方法虽然可行,其实性能较差,不是特别好的方法。可以换其他算法。
例如:整个棋盘有4+3+3+2共12条可以胜利的路径。
如果下一步棋,在这12个路径里将包含棋子位置的路径的值+1(初始为0),当任意路径值等于3,则胜。
就是只允许有三个棋子。
这里两个思路:
1 如果一定要使用九宫格的方式,那么判断逻辑应该是将已经下的棋子中,取所有三个棋子的组合,判断加起来是不是等于15。任一组合等于15,表示胜利。不过也有优化的地方,只判断所有组合中包含最后一步棋子的组合来计算。
2 1的那种方法虽然可行,其实性能较差,不是特别好的方法。可以换其他算法。
例如:整个棋盘有4+3+3+2共12条可以胜利的路径。
如果下一步棋,在这12个路径里将包含棋子位置的路径的值+1(初始为0),当任意路径值等于3,则胜。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯