[英]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;
}
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.