Labirinto estático com WASD

Gente gostaria de uma ajuda sobre como faço pra criar uma função que pegue a tecla pressionada e verifique a direção que está indo, por exemplo: Se eu apertar W(cima) ele verifique se o valor da matriz que está acima da sua posição é correspondente a “C” que seria o chão e assim ele poderia passar e após isso atualizar e imprimir a matriz mostrando ela toda com as alterações feitas.