P1838 三子棋I

题目:

 

 思路:

1.利用打表的方法,可能四种情况会赢:行,列,主对角线,次对角线

代码如下(注意数组一定要初始化,刚开始我没有初始化,以为会默认为0,其实不会,所以以后遇到数组一定要初始化

它是随机的初始化为0

#include<cstdio> 
#include<cstring>
#include<iostream>
using namespace std;
int main(){
	int hang[10]={0,
	1,1,1,
	2,2,2,
	3,3,3};
	int lie[10]={0,
	4,5,6,
	4,5,6, 
	4,5,6};
	int x1[10]={0,
	7,0,0,
	0,7,0,
	0,0,7
	};
	int x2[10]={0,
	0,0,8,
	0,8,0,
	8,0,0
	};
	string s;
	cin>>s;
	int a[2][9];
	for(int i=0;i<2;i++)
		for(int j=0;j<9;j++)
			a[i][j]=0;
	for(int i=0;i<s.size();i++)
	{
		a[i%2][hang[s[i]-'0']]++;
		a[i%2][lie[s[i]-'0']]++;
		a[i%2][x1[s[i]-'0']]++;
		a[i%2][x2[s[i]-'0']]++;
	}
//	cout<<a[0][6]<<endl;
	for(int i=1;i<9;i++){
	if(a[0][i]==3) {
	cout<<"xiaoa wins.";
	return 0;	
	}
	else if(a[1][i]==3){
	cout<<"uim wins.";
	return 0;	
	}
	}
		cout<<"drew.";
	return 0;
}

  

posted @ 2020-10-04 20:39  miao-xixixi  阅读(216)  评论(0编辑  收藏  举报