独立钻石棋详解

举报
用户已注销 发表于 2021/11/19 06:22:35 2021/11/19
【摘要】 在独立钻石棋一文中,有关于独立钻石棋的代码。 我自己找出了一个最后只剩一个棋子,而且还在最中间的方案,然后把代码稍微修改,得到下面的代码,用来显示我发现的方案。 代码: #include<iostream> using namespace std; int list[7][7]; void display()...

独立钻石棋一文中,有关于独立钻石棋的代码。

我自己找出了一个最后只剩一个棋子,而且还在最中间的方案,然后把代码稍微修改,得到下面的代码,用来显示我发现的方案。

代码:

#include<iostream>
using namespace std;

int list[7][7];	

void display()
{
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j < 7; j++)
		{
			if (i == 2 || i == 3 || i == 4 || j == 2 || j == 3 || j == 4)
			{
				if (list[i][j] == 2)cout << "●";
				else cout << "〇";
			}
			else cout << "  ";
		}
		cout << endl;
	}
	cout << endl << endl << endl;
}

void up(int i, int j)
{
	list[i - 1][j] ++;
	list[i][j] --;
	list[i + 1][j] --;
	display();
}

void down( int i, int j)
{

	list[i + 1][j] ++;
	list[i][j] --;
	list[i - 1][j] --;
	display();
}

void left(int i, int j)
{

	list[i][j - 1] ++;
	list[i][j] --;
	list[i][j + 1] --;
	display();
}

void right(int i, int j)
{

	list[i][j + 1] ++;
	list[i][j] --;
	list[i][j - 1] --;
	display();
}
int main()
{	
	for (int i = 0; i < 7; i++)for (int j = 0; j < 7; j++)
	{
		list[i][j] = 0;
		if (i == 2 || i == 3 || i == 4 || j == 2 || j == 3 || j == 4)list[i][j] = 2;
	}
	list[3][3] = 1;	

	display();
	down(2, 3);
	right(2, 2);
	up(3, 2);
	right(4, 1);
	down(2, 2);
	down(3, 0);
	left(4, 2);
	right(4, 1);
	left(2, 3);
	down(1, 4);
	right(0, 3);
	up(2, 4);
	down(1, 4);
	left(2, 4);
	left(2, 2);
	down(3, 1);
	right(4, 2);
	up(5, 2);
	up(4, 4);
	left(4, 5);
	down(3, 6);
	right(4, 4);
	left(4, 5);
	down(4, 4);
	up(5, 4);
	right(3, 3);
	up(5, 3);
	down(4, 4);
	right(4, 3);
	up(4, 4);
	left(3, 4);
	system("pause>nul");
	return 0;
}

运行结果:

(由于排版的问题,我将输出的结果变成了图片)



223(1)中,我还给出了另外一种解法。


文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/nameofcsdn/article/details/53049830

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。