簡體   English   中英

如何在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;
        }
        }
    }
}

}

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM