Pues si ya casi lo tienes, por lo que veo, al pulsar una tecla, mueves, pero nunca verificas si la casilla esta vacia o no, asi que antes de que muevas, verifica con un if si la casilla a la que te piensas mover esta vacia, si lo esta, entonces te mueves, si no lo esta, te quedas donde estas, yo utlizaria dos variables mas para representar la pocision futura, o sea, algo como:
// las variables x1 y y1, representarian la posicion a la que te piensas mover, x,y es la posicion en la que estas
if (matriz[x1][y1]==0)
//te mueves
else
//te quedas en la misma posicion
Recuerda otro detalle, las matrices comienzan en cero, asi que la posicion 1,1 de la pantalla, seria la 0,0 de la matriz.