井子棋代码人VS电脑(c++)

井子棋代码人VS电脑(c++),第1张

这是以最近做的一个

代码。


制作不容易

给的赞吧......

样例输入:

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

好了上代码了(累死):

#include
#include 
#include 
#include 
using namespace std;
 
int s[3][3], tf = 0, gofirst = 1, row, column, over = 0;
bool end = false;
 
void print()
{
	cout << "-------" << endl;
	for(int x = 0; x < 3; x++)
	{
		cout << "|";
		for(int y = 0; y < 3; y++)
		{
			if(s[x][y] == 0) cout << " ";
			else if(s[x][y] == 1) cout << "O";
			else if(s[x][y] == 2) cout << "X";
			cout << "|";
		}
		cout << endl << "-------" << endl;
	}
	cout << endl;
}
 
int check()
{
	for(int x = 0; x < 3; x++)
	{
		if(s[x][0] == 1 && s[x][1] == 1 && s[x][2] == 1)
		{
			cout << "You win!!!" << endl << endl;
			end = true;
			return 0;
			break;
		}
	}
	for(int x = 0; x < 3; x++)
	{
		if(s[0][x] == 1 && s[1][x] == 1 && s[2][x] == 1)
		{
			cout << "You win!!!" << endl << endl;
			end = true;
			return 0;
			break;
		}
	}
	for(int x = 0; x < 3; x++)
	{
		if(s[x][0] == 2 && s[x][1] == 2 && s[x][2] == 2)
		{
			cout << "You lose!" << endl << endl;
			end = true;
			return 0;
			break;
		}
	}
	for(int x = 0; x < 3; x++)
	{
		if(s[0][x] == 2 && s[1][x] == 2 && s[2][x] == 2)
		{
			cout << "You lose!" << endl << endl;
			end = true;
			return 0;
			break;
		}
	}
	if(s[0][0] == 1 && s[1][1] == 1 && s[2][2] == 1)
	{
		cout << "You win!!!" << endl << endl;
		end = true;
		return 0;
	}
	else if(s[0][0] == 2 && s[1][1] == 2 && s[2][2] == 2)
	{
		cout << "You lose!" << endl << endl;
		end = true;
		return 0;
	}
	else if(s[2][2] == 1 && s[1][1] == 1 && s[0][0] == 1)
	{
		cout << "You win!!!" << endl << endl;
		end = true;
		return 0;
	}
	else if(s[2][2] == 2 && s[1][1] == 2 && s[0][0] == 2)
	{
		cout << "You lose!" << endl << endl;
		end = true;
		return 0;
	}
	else
	{
		int count = 0;
		for(int x = 0; x < 3; x++)
		{
			for(int y = 0; y < 3; y++)
			{
				if(s[x][y] == 1 || s[x][y] == 2) count++;
			}
		}
		if(count == 9)
		{
			cout << "Draw!" << endl << endl;
			end = true;
			return 0;
		}
	}
}
 
void computer()
{
	int breaktf = 0;
	if(tf == 1)
	{
		if(s[1][1] == 0) s[1][1] = 2;
		else s[0][2] = 2;
	}
	else
	{
		if(s[1][1] == 1 && s[2][0] == 1 && s[0][2] == 2 && s[2][2] == 0) s[2][2] = 2;
		else if(s[0][0] == 2 && s[0][1] == 2 && s[0][2] == 0) s[0][2] = 2;
		else if(s[0][0] == 2 && s[0][2] == 2 && s[0][1] == 0) s[0][1] = 2;
		else if(s[0][0] == 2 && s[2][2] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[0][0] == 2 && s[2][0] == 2 && s[1][0] == 0) s[1][0] = 2;
		else if(s[0][0] == 2 && s[1][0] == 2 && s[2][0] == 0) s[2][0] = 2;
		else if(s[0][0] == 2 && s[1][1] == 2 && s[2][2] == 0) s[2][2] = 2;
		else if(s[0][2] == 2 && s[0][0] == 2 && s[0][1] == 0) s[0][1] = 2;
		else if(s[0][2] == 2 && s[0][1] == 2 && s[0][0] == 0) s[0][0] = 2;
		else if(s[0][2] == 2 && s[1][2] == 2 && s[2][2] == 0) s[2][2] = 2;
		else if(s[0][2] == 2 && s[2][2] == 2 && s[1][2] == 0) s[1][2] = 2;
		else if(s[0][2] == 2 && s[2][0] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[0][2] == 2 && s[1][1] == 2 && s[2][0] == 0) s[2][0] = 2;
		else if(s[2][0] == 2 && s[1][0] == 2 && s[0][0] == 0) s[0][0] = 2;
		else if(s[2][0] == 2 && s[0][0] == 2 && s[1][0] == 0) s[1][0] = 2;
		else if(s[2][0] == 2 && s[2][1] == 2 && s[2][2] == 0) s[2][2] = 2;
		else if(s[2][0] == 2 && s[2][2] == 2 && s[2][1] == 0) s[2][1] = 2;
		else if(s[2][0] == 2 && s[1][2] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[2][0] == 2 && s[1][1] == 2 && s[1][2] == 0) s[1][2] = 2;
		else if(s[2][2] == 2 && s[1][2] == 2 && s[0][2] == 0) s[0][2] = 2;
		else if(s[2][2] == 2 && s[0][2] == 2 && s[1][2] == 0) s[1][2] = 2;
		else if(s[2][2] == 2 && s[2][0] == 2 && s[2][1] == 0) s[2][1] = 2;
		else if(s[2][2] == 2 && s[2][1] == 2 && s[2][0] == 0) s[2][0] = 2;
		else if(s[2][2] == 2 && s[0][0] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[2][2] == 2 && s[1][1] == 2 && s[0][0] == 0) s[0][0] = 2;
		else if(s[0][1] == 2 && s[2][1] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[1][0] == 2 && s[1][2] == 2 && s[1][1] == 0) s[1][1] = 2;
		else if(s[1][2] == 2 && s[1][1] == 2 && s[1][0] == 0) s[1][0] = 2;
		else if(s[2][1] == 2 && s[1][1] == 2 && s[0][1] == 0) s[0][1] = 2;
		else if(s[1][0] == 2 && s[1][1] == 2 && s[1][2] == 0) s[1][2] = 2;
		else if(s[0][1] == 2 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
		else if(s[0][0] == 1 && s[0][1] == 1 && s[0][2] == 0) s[0][2] = 2;
		else if(s[0][0] == 1 && s[0][2] == 1 && s[0][1] == 0) s[0][1] = 2;
		else if(s[0][0] == 1 && s[2][2] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[0][0] == 1 && s[2][0] == 1 && s[1][0] == 0) s[1][0] = 2;
		else if(s[0][0] == 1 && s[1][0] == 1 && s[2][0] == 0) s[2][0] = 2;
		else if(s[0][0] == 1 && s[1][1] == 1 && s[2][2] == 0) s[2][2] = 2;
		else if(s[0][2] == 1 && s[0][0] == 1 && s[0][1] == 0) s[0][1] = 2;
		else if(s[0][2] == 1 && s[0][1] == 1 && s[0][0] == 0) s[0][0] = 2;
		else if(s[0][2] == 1 && s[1][2] == 1 && s[2][2] == 0) s[2][2] = 2;
		else if(s[0][2] == 1 && s[2][2] == 1 && s[1][2] == 0) s[1][2] = 2;
		else if(s[0][2] == 1 && s[2][0] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[0][2] == 1 && s[1][1] == 1 && s[2][0] == 0) s[2][0] = 2;
		else if(s[2][0] == 1 && s[1][0] == 1 && s[0][0] == 0) s[0][0] = 2;
		else if(s[2][0] == 1 && s[0][0] == 1 && s[1][0] == 0) s[1][0] = 2;
		else if(s[2][0] == 1 && s[2][1] == 1 && s[2][2] == 0) s[2][2] = 2;
		else if(s[2][0] == 1 && s[2][2] == 1 && s[2][1] == 0) s[2][1] = 2;
		else if(s[2][0] == 1 && s[1][2] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[2][0] == 1 && s[1][1] == 1 && s[1][2] == 0) s[1][2] = 2;
		else if(s[2][2] == 1 && s[1][2] == 1 && s[0][2] == 0) s[0][2] = 2;
		else if(s[2][2] == 1 && s[0][2] == 1 && s[1][2] == 0) s[1][2] = 2;
		else if(s[2][2] == 1 && s[2][0] == 1 && s[2][1] == 0) s[2][1] = 2;
		else if(s[2][2] == 1 && s[2][1] == 1 && s[2][0] == 0) s[2][0] = 2;
		else if(s[2][2] == 1 && s[0][0] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[2][2] == 1 && s[1][1] == 1 && s[0][0] == 0) s[0][0] = 2;
		else if(s[0][1] == 1 && s[2][1] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[1][0] == 1 && s[1][2] == 1 && s[1][1] == 0) s[1][1] = 2;
		else if(s[1][2] == 1 && s[1][1] == 1 && s[1][0] == 0) s[1][0] = 2;
		else if(s[2][1] == 1 && s[1][1] == 1 && s[0][1] == 0) s[0][1] = 2;
		else if(s[1][0] == 1 && s[1][1] == 1 && s[1][2] == 0) s[1][2] = 2;
		else if(s[0][1] == 1 && s[1][1] == 1 && s[2][1] == 0) s[2][1] = 2;
		else if(s[0][0] == 1 && s[2][2] == 1 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
		else if(s[0][2] == 1 && s[2][0] == 1 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
		else if(s[0][0] == 1 && s[1][1] == 2 && s[0][2] == 0) s[0][2] = 2;
		else if(s[0][2] == 1 && s[1][1] == 2 && s[0][0] == 0) s[0][0] = 2;
		else if(s[2][0] == 1 && s[1][1] == 2 && s[2][2] == 0) s[2][2] = 2;
		else if(s[2][2] == 1 && s[1][1] == 2 && s[2][0] == 0) s[2][0] = 2;
		else
		{
			//cout << "here!" << endl;
			for(int x = 0; x < 3; x++)
			{
				for(int y = 0; y < 3; y++)
				{
					if(s[x][y] == 0)
					{
						s[x][y] = 2;
						breaktf = 1;
						break;
					}
				}
				if(breaktf == 1) break;
			}
		}
	}
}
 
int main()
{
	cout << "This is O and X" << endl;
	cout << "Made by 康炜晨" << endl;
	cout << "If you want to start, please press 0, else press 1: ";
	cin >> over;
	while(over == 0)
	{
		end = false;
		for(int x = 0; x < 3; x++)
		for(int y = 0; y < 3; y++) s[x][y] = 0;
		cout << "You go first(1) or computer go first(0): ";
		cin >> gofirst;
		if(gofirst == 1) tf = 0;
		else if(gofirst == 0) tf = 1;
		print();
		while(end == false)
		{
			bool inputtf = true;
			if(tf % 2 == 0)
			{
				while(inputtf)
				{
					cout << "Which place do you want to choose?" << endl;
					cout << "row: ";
					cin >> row;
					cout << "column: ";
					cin >> column;
					row--;
					column--;
					if(s[row][column] != 0) 
					{
						cout << "This place can't choose, please reinput." << endl;
					}
					else inputtf = false;
				}
				s[row][column] = 1;
			}
			else computer();
			print();
			check();
			tf++;
		}
		cout << "If you want to play again, please press 0, else press 1: ";
		cin >> over;
	}
	return 0;
}

一起加油!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/634728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存