Boa tarde Geovani, você cresceu bastante o código, daria pra ser mais sucinto, contudo vamos lá.
Você não precisa informar na troca de cores as coordenadas que foi clicada, então
function mudaCor(evento){
let x = evento.pageX - tela.offsetLeft; <- esse pode ser removido, informação que você não vai usar.
let y = evento.pageY - tela.offsetTop; <- esse pode ser removido, informação que você não vai usar.
let cores=["red", "green", "blue"]; <- esse seria melhor ficar no inicio do código, fora da função, você só remete ao Array depois na hora do cálculo e mudança.
As condições dos If's ficaram boas por chegar ao resultado, mas podem ser simplificadas para:
function mudaCor() {
contador++; // a cada clique ele vai aumentar o valor do contador e ele inicia em 0 - 1 click, vai a 1, outro clique vai a 2, 2 é igual o tamanho da array? zera o contador então.
if (contador == cores.length) {
contador = 0;
}
return false;
Só que, para reduzir a usa função mudaCor você precisa alterar a função desenhaCirculo também
pincel.fillStyle= cores[contador]; <- apenas essa mudança fará com que toda vez que clicar com o botão direito, o contador muda de número e retorna a palavra (cor) que está na posição (0, 1 ou 2);
Mas como eu falei, se o seu código funcionou dessa maneira, está correta a resposta, ele somente ficou muito extenso, que poderia ser reduzido nesses pontos.