- Fork this repo
- Clone it from your github account onto your computer, and switch into the directory
- Make a JS file for each exercise you attempt.
- Play with your code in your snippets or console to verify it works correctly.
- Once finished do the following:
git add . -A
from the prototypes folder.git commit -m 'solutions'
git push origin master
- Submit the link to your fork in the homework form.
Goal |
---|
Try to complete the dice, starship, and radio problems. |
NOTE: it's very hard to express an exhaustive description of each custom type outlined below. We encourage you to discuss the ambiguity of requirements for methods and properties. Also, for some exercises, you might need to add a property (or properties) to the prototype in order to make your method work.
- Make a
Dice
constructor that takes anumberOfSides
. Add a method calledroll
that randomly returns a number from1
up to thenumberOfSides
.
- Modify your
roll
method to record the returned side in alastRoll
property.
- Make a
Starship
constructor that takes amodel
andownerName
.
- Give your
StarShip
asetTopSpeed
method and agetTopSpeed
method that let you change and read thetopSpeed
. AssumetopSpeed
is just a number. - Give your
Starship
anaccelerateTo
method that setscurrentSpeed
to some number, unless that number is greater than itstopSpeed
.
- Make a
Radio
constructor that takes in anownerName
and asignalType
("AM" or "FM").
- Add a
setStation
method to your radio that allows the following ranges for astation
property:535
to1705
for "AM".88
to108
for "FM".
- Add a
listen
method that returns the following:"distorted music"
for "AM"."clear music"
for "FM".
- SUPER BONUS: Add a
toggleSignal
method that lets you setsignalType
toAM
orFM
. Make sure thestation
is valid when you toggle. Your radio should remember thestation
from the other signal type when you toggle.
-
Make a
CardDeck
constructor that returns an object with acards
property that is an array of52
numbers,1..52
.- Write a method called
deal
that randomly returns a "card" (a number from 1 .. 52) fromcards
and removes it from thecards
array. - Write a method called
isFull
that returnstrue
orfalse
if all52
cards are present. - Write a method called
cut
that randomly picks an index and returns an array of two arrays where the deck was split at that index. - BONUS: write a
shuffle
method that mixes up all the cards. How does this change yourdeal
method?
- Write a method called
-
Make a
Mailer
constructor that takes afrom
email address, and hascurrentMessage
set to an empty object, as well as asentMessages
array.
- Add a
setSendTo
method that setscurrentMessage.sendTo
to be a specified email. - Add a
setSubject
method that setscurrentMessage.subject
to be a specified subject. - Add a
send
method that setscurrentMessage.from
to bethis.from
, pushescurrentMessage
intosentMessages
, and setscurrentMessage
to be a new object.- Modify
send
so that it checks ifcurrentMessage
has both asendTo
andsubject
before pushing tosentMessages
.
- Modify