【OpenCV】计算围棋相同颜色棋子的块数和坐标(使用深/广度搜索实现4邻域查找)

1、问题描述:

给定一个n*n的围棋盘,交叉点上分布着黑,白子或空白(分别用字符b,w和 n表示),
相同颜色的棋子在同行或同列相连属于同一块棋,请遍历整个围棋盘,计算黑白棋各有几块。
输入:第一行只有一个整数n(0<n<20),表示棋盘的大小。
接下来n行中,包含n个字符,分别用字符b,w和 n表示黑,白子或空白。
输出:两个整数,分别表示黑,白棋各有几块。 打印出属于同一区域的棋子坐标(可选择)。


2、样例输入: 

6
bbbnww
nbnnwn
bbwwnn
bwwnnw
bbbbww
wwnbbw


3、样例输出:
1 4


4、算法思想:

深搜或广搜均可 

 

5、代码如下:

#include<iostream>
#include<cstdio>
#include <vector>
#include <opencv2/opencv.hpp>
#include <cv.h>
 
using namespace std;
using namespace cv;
 
const int MAX = 20; 
char m_map[MAX][MAX];
bool lib[MAX][MAX]; //标记该点是否已经来过 
int DicX[4] = {0, 1, 0, -1}; //向东南西北四个方向移动,x坐标相当于行坐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值