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, password);
}

// part 2
function ChangeUsername(newUserName)
{
	username = newUserName;
}

// part 3
function ChangePassword(newPassword)
{
	password = newPassword;
}

// part 4
function Login(_username, _password)
{
	if (_username === username && _password === password) {
		// print out logged in succesfully
		console.log("Login Sucsess!");
		return true;
	}
	else
	{
		// print out log in failure
		console.log("Login Failiure");
		return false;
	}
}

// Test
ChangeUsername("samarth");
ChangePassword("password");
Account();
Login("samarth", "password");
Login("samarth", "P@ssword");
<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:

// popcorn hack 2 code goes here:

class House {
    constructor(cost, age, size) {
        this.cost = cost;
        this.age = age;
        this.size = size;
    }
}

anishsHouse = new House(5000000, 7, 40000);

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
	moveLeft() {
		this.velocityX = -200;
	}
	moveRight() {
		this.velocityX = 200;
	}


	// part 3
	updatePosition() {
		this.positionX += this.velocityX;
		console.log("We have updated the position to:", this.positionX);
	}
}

// part 4
let player = new Player;

// call the functions on player here:
player.moveLeft();
player.updatePosition();
player.moveRight();
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

Submission Google Form for Homework