1. 程式人生 > 其它 >python排序之快速排序

python排序之快速排序

題面:掃雷遊戲

思路:
判斷每一個為 ? 的點的上、下、左、右、左上、左下、右上、右下的點共有幾個為 * 的點,有幾個,該點的值就是幾

#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[2000][2000];
char c[2000][2000];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>c[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			if(c[i][j]!='*')//該點是 ? 
			{
				if(c[i-1][j]=='*')
					a[i][j]++;
				if(c[i][j-1]=='*')
					a[i][j]++;
				if(c[i+1][j]=='*')
					a[i][j]++;
				if(c[i][j+1]=='*')
					a[i][j]++;
				if(c[i-1][j-1]=='*')
					a[i][j]++;
				if(c[i-1][j+1]=='*')
					a[i][j]++;
				if(c[i+1][j-1]=='*')
					a[i][j]++;
				if(c[i+1][j+1]=='*')
					a[i][j]++;
//判斷該點的上、下、左、右、左上、左下、右上、右下的點共有幾個為 * 的點,並記錄
			}
			else //對是 * 的點打標記
				a[i][j]=-1;
		}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			if(a[i][j]!=-1)
				cout<<a[i][j];
			else 
				cout<<"*";
		cout<<endl;
	}
	return 0;
}