<canvas width="600" height="400"></canvas>
<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);
    var puedoDibujar = false;
    let arrColor = ["red", "green", "blue"];
    let n=0;    // color inicio arrColor[0] = 'red'
    function dibujarCuadrado(x, y, color) {
        pincel.fillStyle = color;
        pincel.fillRect(x, y, 50, 50);
    }
    dibujarCuadrado(0, 0, "red");
    dibujarCuadrado(50, 0, "green");
    dibujarCuadrado(100, 0, "blue");
    function dibujarCirculo(evento) {
        if (puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = arrColor[n];
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }
    } // dibujarCirculo
    function elegirColor(evento){
        let t=n;   // guarda el color activo antes de cambiarlo
        let x = evento.pageX - pantalla.offsetLeft;
        let y = evento.pageY - pantalla.offsetTop;
        if(y<50){
            if (x<50) n=0;
            else if (x<100) n=1;
            else if (x<150) n=2;
            else n=t;   // recupera el color de inicio si no cambió color
        } else {   // dibuja la paleta de colores por si son pintados por otro color
            dibujarCuadrado(0, 0, "red");
            dibujarCuadrado(50, 0, "green");
            dibujarCuadrado(100, 0, "blue");
        }
    } // elegirColor
    pantalla.onmousemove = dibujarCirculo;
    pantalla.onclick = elegirColor;
    function habilitarDibujar() {
        puedoDibujar = true;
    }
    function deshabilitarDibujar() {
        puedoDibujar = false;
    }
    pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;
</script>