Annalyn's Infiltration
// @ts-check
//
// ☝🏽 The line above enables type checking for this file. Various IDEs interpret
// the @ts-check directive. It will give you helpful autocompletion on the web
// and supported IDEs when implementing this exercise. You don't need to
// understand types, JSDoc, or TypeScript in order to complete this JavaScript
// exercise, and can completely ignore this comment block and directive.
// 👋🏽 Hi again!
//
// A quick reminder about exercise stubs:
//
// 💡 You're allowed to completely clear any stub before you get started. Often
// we recommend using the stub, because they are already set-up correctly to
// work with the tests, which you can find in ./annalyns-infiltration.spec.js.
//
// 💡 You don't need to write JSDoc comment blocks yourself; it is not expected
// in idiomatic JavaScript, but some companies and style-guides do enforce them.
//
// Now help Annalyn free her best friend!
/**
- The fast attack is available when the knight is sleeping
- @param {boolean} knightIsAwake
- @return {boolean} Whether or not you can execute a fast attack.
*/
export function canExecuteFastAttack(knightIsAwake) {
return knightIsAwake == false;
}
/**
- A useful spy captures information, which they can't do if everyone's asleep.
- @param {boolean} knightIsAwake
- @param {boolean} archerIsAwake
- @param {boolean} prisonerIsAwake
- @returns {boolean} Whether or not you can spy on someone.
*/
export function canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake) {
return knightIsAwake == true || archerIsAwake == true || prisonerIsAwake == true;
}
/**
- You'll get caught by the archer if you signal while they're awake.
- @param {boolean} archerIsAwake
- @param {boolean} prisonerIsAwake
- @returns {boolean} Whether or not you can send a signal to the prisoner.
*/
export function canSignalPrisoner(archerIsAwake, prisonerIsAwake) {
return archerIsAwake == false && prisonerIsAwake == true;
}
/**
- The final stage in the plan: freeing Annalyn's best friend.
- @param {boolean} knightIsAwake
- @param {boolean} archerIsAwake
- @param {boolean} prisonerIsAwake
- @param {boolean} petDogIsPresent
- @returns {boolean} Whether or not you can free Annalyn's friend.
*/
export function canFreePrisoner(
knightIsAwake,
archerIsAwake,
prisonerIsAwake,
petDogIsPresent
) {
return (petDogIsPresent==true && archerIsAwake == false) || (prisonerIsAwake == true && knightIsAwake==false && archerIsAwake == false);
}
Thank you, friend!
I'm @steem.history, who is steem witness.
Thank you for witnessvoting for me.
please click it!
(Go to https://steemit.com/~witnesses and type fbslo at the bottom of the page)
The weight is reduced because of the lack of Voting Power. If you vote for me as a witness, you can get my little vote.