Penguins - Data Abstraction Homework
Categories: JavaScriptPenguins group data abstraction lesson homework
Penguins JS Lessons
Download Homework
Submission Google Form for Homework
Data Abstraction Homework
In order to learn this subject of programming well, you have to practice:
Popcorn hack 1: Data Abstraction with functions
Popcorn hack 2: Data abstraction with classes
Final Task: Building a player system using classes and functions
Popcorn Hack 1 (Progress Check)
Data abstraction with functions:
Part 1: Edit the Account()
function to print out the username and password to the console using console.log().
Part 2: Edit the ChangeUsername()
function to accept a newUsername
parameter, then set the username
variable to the newUsername
parameter.
Part 3: Edit the ChangePassword()
function to accept a newPassword
parameter, then set the password
variable to the newPassword
parameter.
Part 4: Make the Login()
function check if the parameters _username
and _password
are equal to the username
and password
variables, then print out if the login succeeded or failed using console.log().
%% javascript
// put popcorn hack 1 code here:
let username = "Giuseppe";
let password = "giuseppe_very_awesome_password";
// part 1
function Account() {
console.log("Username: " + username + ", Password: " + password);
}
// part 2
function ChangeUsername() {
\ username = "NewUsername";
console.log("New Username: " + username);
}
// part 3
function ChangePassword() {
\ password = "NewPassword123";
console.log("New Password: " + password);
}
// part 4
function Login(_username, _password) {
if (/* check if equal */ && /* check if equal */) {
// print out logged in succesfully
console.log("Logged in successfully");
return true;
}
else {
// print out log in failure
console.log("Log in failed");
return false;
}
}
<IPython.core.display.Javascript object>
Popcorn Hack 2 (Progress Check)
Use the examples provided in the lesson if you’re stuck.
Part 1: Make a class named House
Part 2: Make a constructor for the House
class with the parameters cost, age, and size
Part 3: Make an instance of the House class with the name myHouse and fill the parameters with any numbers you want.
Write your code down here:
%% javascript
class house {
constructor(cost, age, size) {
this.cost = cost;
this.age = age;
this.size = size;
}
}
let myHouse = new house(300000, 10, 2000);
console.log("The House costs $" + myHouse.cost + ", is " + myHouse.age + " years old, and is " + myHouse.size + " square feet.");
<IPython.core.display.Javascript object>
Final task
Part 1: Create 2 variables in the constructor like this: this.variableName = something.
These variables will be called: this.positionX
, this.velocityX
.
Part 2: Create 2 methods called MoveLeft()
and MoveRight()
,
inside MoveLeft() set ‘this.velocityX’ to -200.
inside MoveRight() set ‘this.velocityX’ to 200.
Part 3: Create a function called UpdatePosition()
. Inside this function, add ‘this.velocityX’ to ‘this.positionX’
Part 4: Call each method (MoveLeft(), MoveRight(), UpdatePosition() ), on the player object.
%% javascript
// final task code goes here:
class Player {
// part 1
constructor() {
this.positionX = 0;
this.velocityX = 0;
}
// part 2
//Create 2 methods called `MoveLeft()` and `MoveRight()`, <br> inside MoveLeft() set 'this.velocityX' to -200. <br>inside MoveRight() set 'this.velocityX' to 200.
MoveLeft() {
this.velocityX = -200;
console.log("VelocityX: " + this.velocityX);
}
MoveRight() {
this.velocityX = 200;
console.log("VelocityX: " + this.velocityX);
}
// part 3
UpdatePosition() {
this.positionX += this.velocityX * 0.016; // assuming 60 FPS, so delta time is ~0.016 seconds
console.log("PositionX: " + this.positionX);
}
}
// part 4
let player = new Player;
// call the functions on player here:
player.MoveRight();
player.UpdatePosition();
player.MoveLeft();
player.UpdatePosition();
<IPython.core.display.Javascript object>
Grading
Popcorn Hack 1: Completion gives 0.2 points.
Popcorn Hack 2: Completion gives 0.3 points.
Final Task: Completion gives 0.5 points. Max of 0.02 extra points from extra work relevant to the subject or finishing assignment in a way that shows exceptional comprehension of the lesson.
Make sure to submit your homework deployed link onto the global homework submission google sheet