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