学校の課題で 15 パズル ゲームをコーディングしています。3 つの移動パラメータを取ります。これらは、x、y 座標と方向です。
しかし、私のコードは、最初に印刷するテーブルの要素を何度も置き換えません。なにが問題ですか?
この部分は移動のための関数呼び出しです:
if ((x<Cols && x>=0)&&(y<Rows && y>=0))
{
switch (move)
{
case 0:
leftOp((int *)arr, Rows, Cols, &Row, &Col, x, y);
break;
default:
printf("error!!1\n");
break;
}
}
そして、この部分は移動機能です:
void leftOp(int* arr, int Rows, int Cols, int* MomRow, int* MomCol, int x, int y){
int temp;
if (y == *MomRow)
{
while (x != *MomCol && *MomCol > x)
{
temp = arr[*MomRow * Cols + *MomCol];
arr[*MomRow * Cols + *MomCol] = arr[*MomRow * Cols + *MomCol - 1];
arr[*MomRow * Cols + *MomCol - 1] = temp;
}
}
}