把三字连珠(三子棋)棋盘改成4x4的,下列所有可能赢得情况列举的全吗?因为我要做C++课程设计里的
把三字连珠(三子棋)棋盘改成4x4的,下列所有可能赢得情况列举的全吗?因为我要做C++课程设计里的三字连珠游戏,谁做过这个可以顺便给点思路和经验吗?...
把三字连珠(三子棋)棋盘改成4x4的,下列所有可能赢得情况列举的全吗?因为我要做C++课程设计里的三字连珠游戏,谁做过这个可以顺便给点思路和经验吗?
展开
1个回答
展开全部
九宫格的这个思路其实有个限制:
就是只允许有三个棋子。
这里两个思路:
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,则胜。
追问:
其他方法是用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询