如何在 2D 数组 c++ 中交换元素
How to swap elements in 2d array c++
我正在尝试通过将元素与空白元素的位置交换来制作一个 15 的益智游戏。我已经编写了这段代码,但由于某种原因,它仅在磁贴位于右侧或下方时交换。
void moveTile(int gameBoard[][SIZE], int nextMove, int &blanki, int &blankj)
{
int temp=nextMove;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(gameBoard[i][j]==nextMove)
{
gameBoard[i][j]=gameBoard[blanki][blankj];
gameBoard[blanki][blankj]=temp;
blanki=i;
blankj=j;
}
}
}
}
在调试器中遍历它。 你会看到,在进行交换后,你继续搜索。 如果磁贴位于上方或左侧,您将再次交换。
进行交换后,您需要停止搜索。
我已经更新了它以包含停止,现在代码不迭代。
void moveTile(int gameBoard[][SIZE], int nextMove, int &blanki, int &blankj)
{ bool stop=false;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
while(!stop)
{if(gameBoard[i][j]==nextMove)
{
int temp=gameBoard[i][j];
gameBoard[i][j]=gameBoard[blanki][blankj];
gameBoard[blanki][blankj]=temp;
blanki=i;
blankj=j;
stop=true;
}
}
}
}
}
相关文章:
- 通过交换元素使数组相同
- 转置矩阵:交换元素不会更改值
- 交换函数不是在 C++ 中交换 2D 数组的元素
- 如何交换数组中的元素?
- c++:交换向量中所有元组的第一个和第二个元素
- 为什么只有当我的容器有超过 32 个元素时才由 std::sort 调用交换?
- 使用 STL 交换堆栈 C++ 中的第一个和最后一个元素
- 使用指针 c++ 交换结构数组中的元素
- C++数组交换并查找最小元素
- 是否可以交换在 c++ 中作为函数 func(say) 中的参数传递的 const 向量的两个元素,例如:vector<int>func (const vector<int>&
- 如何将元素的索引从2D数组存储到1D数组中,然后交换这些值
- 用于快速排序的最大元素交换次数
- 为什么 size() 在与其他堆栈交换元素后提供错误的堆栈大小?
- 链接列表中元素的成对交换(通过更改指针)
- 使用交换函数交换元素是可以的吗?
- 交换链接列表元素
- 如何在 2D 数组 c++ 中交换元素
- C++ 通过移动而不是复制来交换数组元素
- 在链表中交换元素
- 如何生成通过交换元素将一个数组转换为另一个数组的步骤(例如:从{0,1,2}到{0,2,1})