#JavaScript Review: Review Session 2 This past week, we looked at JavaScript, we looked at NodeJS, and we developed a JukeBox app.
Let's take what we've learned and apply it to what we know about OOP. That is, let's translate our Pacman, Ghost, and Ball classes from Ruby into JavaScript.
Our Ball class should have a ball_type attribute whose value can be either regular or super,
// ball.js
var Ball = function(ballType) {
this.ballType = ballType === undefined ? "regular" : "super";
};Now that we are comfortable (somewhat) with classes in JavaScript, let's implement a Ghost class which sets its color to red, pink, white, or yellow randomly on instantiation. Also, let's use javascript's prototype in our code.
// ghost.js
var Ghost = function() {
this.color = ["pink", "red", "yellow", "white"][Math.floor(Math.random() * 4)]
}Using what we've learned from the previous examples, let's implement a PacMan class that can eat ghosts and balls, and also has some attributes such as points and lives.
Use our iRuby version as an example.
// pacman.js
var Pacman = function() {
this.extraLives = 2;
this.points = 0;
this.superTime = 0;
}
Pacman.prototype = {
eat: function(obj) {},
eatBall: function(ball) {
this.superTime -= 1;
this.points += ball.ballType === "regular" ? 1000 : 10;
if (ball.ballType === "super") {
this.superTime = 10;
}
},
eatGhost: function(ghost) {},
die: function() {},
gameOver: function() {}
}