C++ 如何用C+;中的文本制作大小可变的棋盘+;?
如何用文本制作大小可变的棋盘?我可以使用以下代码制作由单个字符组成的棋盘:C++ 如何用C+;中的文本制作大小可变的棋盘+;?,c++,loops,text,C++,Loops,Text,如何用文本制作大小可变的棋盘?我可以使用以下代码制作由单个字符组成的棋盘: #include <iostream> using namespace std; int main() { char C; int length; int width; int count = 0; int N; int row = 0; int col = 0; cout << "Input C" << endl;
#include <iostream>
using namespace std;
int main()
{
char C;
int length;
int width;
int count = 0;
int N;
int row = 0;
int col = 0;
cout << "Input C" << endl;
cin >> C;
cout << "Input length" << endl;
cin >> length;
cout << "Input width" << endl;
cin >> width;
cout << "Input N" << endl;
cin >> N;
for (row = 0; row < N; ++row) {
if (row % 2 == 1) {
for (count = 0; count < length; count++) {
{
cout << "-";
}
cout << "";
}
}
for (col = 0; col < N; ++col) {
for (count = 0; count < length; count++) {
{
cout << C;
}
cout << "";
}
if (col != N) {
for (count = 0; count < length; count++) {
{
cout << "-";
}
cout << "";
}
}
}
cout << endl;
}
printf("\n");
}
#包括
使用名称空间std;
int main()
{
字符C;
整数长度;
整数宽度;
整数计数=0;
int N;
int行=0;
int col=0;
coutc;
库特长度;
库特宽度;
cout N;
用于(行=0;行 老实说,我试着检查你的代码并找出错误,但最终我从头开始重写了这个问题。这都是关于嵌套循环的,你需要相当多的嵌套循环来进行细粒度控制
为我实现这一技巧的代码(我希望注释有帮助):
解决这类问题的方法是将其分解为更小的问题,并不断分解问题,直到最终得到可以轻松转换为代码的非常小的任务
例如,在回顾你的计划大纲后,有一件事变得非常清楚:
假设我们使用标签“逻辑行”引用包含棋盘中一行图像的一行或多行文本或字符串的物理行。在上面的示例中,每个逻辑行由四个物理行组成。然后,第一件非常清楚的事情是,给定任何值N,您将创建N对逻辑行。在每对中,第一个逻辑行row将在奇数列中包含棋盘格,然后第二个逻辑行将在偶数列中包含棋盘格字符
因此,我们可以自信地说,执行所需操作的代码如下所示:
for (int i=0; i < N; ++i)
{
// Draw the odd checkboard logical row
// Draw the even checkboard logical row
}
for (int j=0; j<L; j++)
{
// Draw a single line in a logical row.
}
for(int i=0;i
因此,当N=3时,您将得到一个由六行组成的棋盘,如所需输出的示例所示。当N=4时,您将得到八行,依此类推
现在问题基本上简化为绘制一个逻辑棋盘行。然而结果是,生成的代码将被塞进这个for循环中。因此,我们可以将其放在一边
第二个容易分解的步骤是每个棋盘行由L行物理行组成
因此,生成单个逻辑棋盘行的代码将如下所示:
for (int i=0; i < N; ++i)
{
// Draw the odd checkboard logical row
// Draw the even checkboard logical row
}
for (int j=0; j<L; j++)
{
// Draw a single line in a logical row.
}
for(int j=0;jThanks对于这一点,它是有效的,但我想知道你是如何处理这个问题的。你的算法是什么来解决这个问题的?我真的很想知道,谢谢你的帮助!这是一个蛮力算法。它在每个“单元”(C或“”)中循环并决定在其中绘制什么。这就是行%2==col%2
条件很重要的地方。