Mã:
if(c==VK_UP)
        {
            if(yImage<4&&yImage>=0){
            int tg1 = Vitri[xImage][yImage];
            int tg2 = Vitri[xImage][yImage+1];

            image(xImage*100,(yImage+1)*100,tg1);
            image(xImage*100,yImage*100,Vitri[xImage][yImage+1]);
           
            Vitri[xImage][yImage]=tg2;
            Vitri[xImage][yImage+1]=tg1;
            yImage=yImage+1;
           
            }
            else{MessageBeep(100);}
        }
        if(c==VK_DOWN)
        {
            if(yImage>=0){
            int tg1 = Vitri[xImage][yImage];
            int tg2 = Vitri[xImage][yImage-1];

            image(xImage*100,(yImage-1)*100,tg1);
            image(xImage*100,yImage*100,Vitri[xImage][yImage-1]);
           
            Vitri[xImage][yImage]=tg2;
            Vitri[xImage][yImage-1]=tg1;
            yImage=yImage-1;
            }
            else{MessageBeep(100);}
        }
Mình muốn khi ảnh trẳng ở các vị trí [5][1], [5][2], [5][3] hoặc [1][2], [1][3], [1][4] thì không di chuyển được ảnh nữa và các bạn xem hộ mình xem tại sao câu lệnh if ở trên với 2 phím UP và DOWN lại không chạy đúng, phải sửa thế nào để chương trình này chạy đúng vậy các bạn
VD như phím VK_UP của em khi ảnh trắng ở các vị trí [4][1], [4][2], [4][3] nếu tiếp tục di chuyển xuống dưới thì ảnh bị đổi ở đây không phải là ảnh [5][1], [5][2], [5][3] mà lại là ảnh của ô [1][2], [1][3], [1][4]
Với phím VK_DOWN thì khi ảnh trắng ở các vị trí [5][1], [5][2], [5][3] nếu em ấn DOWN tức là thay đổi vị trí của ảnh bên trên ảnh trắng với ảnh trắng nhưng ở đây nó lại thay đổi ảnh ở vị trí [1][2], [1][3], [1][4] với ảnh bên trên ảnh trắng

Đây là link chương trình đó của mình: http://www.mediafire.com/?p3h1gwsrpc7flmp