Skip to content

Latest commit

 

History

History
173 lines (146 loc) · 4.47 KB

README.md

File metadata and controls

173 lines (146 loc) · 4.47 KB
coreof.tech

Exercises W4D3 - Canvas

Sobre el código del Pacman creado en clase vamos a hacer un par de añadidos: keyUp y keyDown para que Pacman se desplace por el eje de las Y y pintaremos un laberinto como imagen de fondo del canvas.

1. More katas!?

¡It´s Kata-Time!

kata-Time

2. Y axis on Pacman

En esta misma carpeta encontrarás el PACMAN realizado en clase. No obstante aún no es capaz de detectar las teclas keyUp y keyDown. Al pulsarlas, PACMAN debe dejar de desplazarse por el eje de las X y empezar a desplazarse por el eje de las Y de manera automática. No olvides revisar su direction para que la boca vaya siempre hacia el lado correcto del movimiento.

pacman

3. Pacman`s map

Una vez completado el ejercicio anterior, añade un nuevo actor a tu juego: el mapa. Sigue la información definida en la variable pacmanMap de la class Map {(...)} y pinta un laberinto en el fondo de tu canvas.

Use the class MAP define in actor´s folder, loop through let pacmanMap and draw separete elements with:

  • ctx.fillStyle();

  • ctx.fillRect();

  • ctx.strokeStyle();

  • ctx.strokeRect();

  • ctx.beginPath();

  • ctx.arc();

  • ctx.fill();

¡Recuerda! El laberinto se comportará como una imagen de fondo: por ahora, tus pacman no interactuarán con ella. Observa el resultado esperado en la siguiente imagen:

map

4. Entrega

Puedes hacer copy&paste del código de tus KATAS en el siguiente espacio y completar el resto de ejercicios en sus respectivos archivos. Después, haznos una pullrequest al repositorio de CORE.

function zero(operand) {
  if (operand) {
    return eval('~~(' + 0 + operand + ')');
  } else {
    return 0;
  };
};
function one(operand) {
  if (operand) {
    return eval('~~(' + 1 + operand + ')');
  } else {
    return 1;
  };
};
function two(operand) {
  if (operand) {
    return eval('~~(' + 2 + operand + ')');
  } else {
    return 2;
  };
};
function three(operand) {
  if (operand) {
    return eval('~~(' + 3 + operand + ')');
  } else {
    return 3;
  };
};
function four(operand) {
  if (operand) {
    return eval('~~(' + 4 + operand + ')');
  } else {
    return 4;
  };
};
function five(operand) {
  if (operand) {
    return eval('~~(' + 5 + operand + ')');
  } else {
    return 5;
  };
};
function six(operand) {
  if (operand) {
    return eval('~~(' + 6 + operand + ')');
  } else {
    return 6;
  };
};
function seven(operand) {
  if (operand) {
    return eval('~~(' + 7 + operand + ')');
  } else {
    return 7;
  };
};
function eight(operand) {
  if (operand) {
    return eval('~~(' + 8 + operand + ')');
  } else {
    return 8;
  };
};
function nine(operand) {
  if (operand) {
    return eval('~~(' + 9 + operand + ')');
  } else {
    return 9;
  };
};

function plus(number) {
    return '+' + number;
};
function minus(number) {
    return '-' + number;
};
function times(number) {
  return '*' + number;
};
function dividedBy(number) {
    return '/' + number;
};
function isValidWalk(walk) {
  if (walk.length !== 10) {
    return false;
  };
  
  let position = {x: 0, y: 0};
  
  walk.forEach(letter => {
    switch (letter) {
      case 'n':
        position.y += 1;
        break;
      case 's':
        position.y -= 1;
        break;
      case 'w':
        position.x -= 1;
        break;
      case 'e':
        position.x += 1;
        break;
      default:
        console.log('bad direction = ' + letter);
        break;
    };
  });
  
  if (position.x === 0 && position.y === 0) {
    return true;
  };

  return false;
};

References