当前位置:   article > 正文

算法总结2:实现五子棋(C++)_现在有一个 n×n 的棋盘。每个位置有一个数,这个数为 0 ,则表示这里没有棋子,是空

现在有一个 n×n 的棋盘。每个位置有一个数,这个数为 0 ,则表示这里没有棋子,是空

问题的提出

给定棋盘输入,判断黑白方得分

问题描述

在一个n*n的棋盘上,有一些黑色的棋子和白色的棋子,如果能找出任意五个同色的棋子连成直线(横着、竖着、斜着都可以),那么该颜色方加1分。求黑色方得分和白色方得分

输入数据要求

第一行为一个正整数n,代表棋盘的大小。 接下来为一个n*n的矩阵,’#'代表没有棋子,‘B’代表黑色棋子,’W’代表白色棋子 n<=20

输出数据

两个正整数,分别代表黑色方得分和白色方得分

样例输入

6
WBBBBB
WBB###
W###B#
W###B#
W###B#
W###B#

输出结果

1 2

代码

// An highlighted block
#include <iostream> 
#define MAX 20 
using namespace std; 
char a[MAX][MAX]; 
int main()
{    int n;
     cin>>n; 
     for(int i=0;i<n;i++)
     { 
         for(int j=0;j<n;j++)
           { cin>>a[i][j]; } 
      } 
int count_W=0,count_B=0; 
for(int i=0;i<n;i++)
{ 
    for(int j=0;j<n;j++)
     {
        if(a[i][j]=='W')
         {  
              if(j+4<n&&a[i][j+1]=='W'&&a[i][j+2]=='W'&&a[i][j+3]=='W'&&a[i][j+4]=='W')
              { count_W++; } 
              if(i+4<n&&a[i+1][j]=='W'&&a[i+2][j]=='W'&&a[i+3][j]=='W'&&a[i+4][j]=='W')
              { count_W++; } 
              if(i+4<n&&j+4<n&&a[i+1][j+1]=='W'&&a[i+2][j+2]=='W'&&a[i+3][j+3]=='W'&&a[i+4][j+4]=='W')
              { count_W++; }
              if(i+4<n&&j-4>=0&&a[i+1][j-1]=='W'&&a[i+2][j-2]=='W'&&a[i+3][j-3]=='W'&&a[i+4][j-4]=='W')
              { count_W++; } 
          } 
       if(a[i][j]=='B')
        { 
              if(j+4<n&&a[i][j+1]=='B'&&a[i][j+2]=='B'&&a[i][j+3]=='B'&&a[i][j+4]=='B')
              { count_B++; } 
              if(i+4<n&&a[i+1][j]=='B'&&a[i+2][j]=='B'&&a[i+3][j]=='B'&&a[i+4][j]=='B')
              { count_B++; } 
              if(i+4<n&&j+4<n&&a[i+1][j+1]=='B'&&a[i+2][j+2]=='B'&&a[i+3][j+3]=='B'&&a[i+4][j+4]=='B')
              { count_B++; } 
              if(i+4<n&&j-4>=0&&a[i+1][j-1]=='B'&&a[i+2][j-2]=='B'&&a[i+3][j-3]=='B'&&a[i+4][j-4]=='B')
              { count_B++; } 
        } 
     } 
} 
       cout<<count_B<<" "<<count_W; 
       return 0; 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/243685?site
推荐阅读
相关标签
  

闽ICP备14008679号