独立钻石棋详解
【摘要】
在独立钻石棋一文中,有关于独立钻石棋的代码。
我自己找出了一个最后只剩一个棋子,而且还在最中间的方案,然后把代码稍微修改,得到下面的代码,用来显示我发现的方案。
代码:
#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)