C++ 如何干燥多个连续循环
但它看起来有点复杂,我直到写了两次循环。那么,写一个结构对于所有3个循环都是相同的,只改变中间循环中的一条输出线是不是? 你可以向这个lambda添加一个参数:C++ 如何干燥多个连续循环,c++,dry,C++,Dry,但它看起来有点复杂,我直到写了两次循环。那么,写一个结构对于所有3个循环都是相同的,只改变中间循环中的一条输出线是不是? 你可以向这个lambda添加一个参数: for (int j = 0; j < BOARD_SIZE; ++j) { setcolor(m_board[i][j]); std::cout << color << " " << "\033[m"; } std::cout << std::endl
for (int j = 0; j < BOARD_SIZE; ++j)
{
setcolor(m_board[i][j]);
std::cout << color << " " << "\033[m";
}
std::cout << std::endl;
for (int j = 0; j < BOARD_SIZE; ++j)
{
setcolor(m_board[i][j]);
std::cout << color << " " << m_board[i][j] << " " << "\033[m";
}
std::cout << std::endl;
for (int j = 0; j < BOARD_SIZE; ++j)
{
setcolor(m_board[i][j]);
std::cout << color << " " << "\033[m";
}
std::cout << std::endl;
auto draw_blank = [&]()
{
for (int j = 0; j < BOARD_SIZE; ++j)
{
setcolor(m_board[i][j]);
std::cout << color << " " << "\033[m";
}
std::cout << std::endl;
};
draw_blank();
for (int i = 0; i < BOARD_SIZE; ++i)
{
setcolor(m_board[i][j]);
std::cout << color << " 0" << m_board[i][j] << " " << "\033[m"
}
std::cout << std::endl;
draw_blank();
自动绘图板=[&](布尔清除)
{
用于(int j=0;j 我的天啊,我怎么会错过呢。谢谢你!
auto draw_board = [&](bool clear)
{
for (int j = 0; j < BOARD_SIZE; ++j)
{
setcolor(m_board[i][j]);
std::cout << color << " ";
if (clear)
{
std::cout << " ";
}
else
{
std::cout << m_board[i][j];
}
std::cout << " \033[m";
}
std::cout << std::endl;
};
draw_board(true);
draw_board(false);
draw_board(true);