当前位置:   article > 正文

C++制作五子棋_map对棋型打表

map对棋型打表

正文

01

思路

我没有选择专业的五子棋棋型,用我自己的逻辑(初高中玩五子棋的方法),去实现简单的人机对战。

首先因为要计算五子棋每一步的分数,那么你就要分析每一步形成的棋盘,以下图为例:

当你即将在红色方框区域内落子时,通过数据处理获取四个方向的棋子存储在数组里面,然后就是分析这个数组属于那种棋型。


以横向为例:

row相当于上图红色矩形区域的行坐标

col 相当于上图红色矩形区域的列坐标

player是这个位置即将落子的颜色,-1黑子    1 白子

  1. int Game_score(int row, int col, int player) //player = -1黑子 player = 1 白子
  2. {
  3. char arr[4][9] = { 0 }; //存放四个方向的棋子
  4. int grade[4]; //存放四个方向的总分
  5. int begin = 0, end = 0;
  6. /*========左右========*/
  7. //从Map[row][col]处往左找四个棋子,遇到边界结束得到左边落子数量
  8. //从Map[row][col]处往右找四个棋子,遇到边界结束得到右边落子数量
  9. for (int index = 1; index <= 4; index++)
  10. {
  11. //往左找
  12. if (col - index >= 0)
  13. {
  14. begin = index;
  15. }
  16. //往右找
  17. if (col + index < 15)
  18. {
  19. end = index;
  20. }
  21. }
  22. for (int temp = 0, index = col - begin; index <= col + end; index++, temp++)
  23. {
  24. arr[0][temp] = Map[row][index]; //将Map[row][col]附近九个位置的棋子放入到arr里面分析
  25. }
  26. arr[0][begin] = player; //将预测的落子位置由0
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/336408
推荐阅读
相关标签
  

闽ICP备14008679号