Skip to content

Instantly share code, notes, and snippets.

View cplpearce's full-sized avatar
🙃
Riding the programming emotional roller coaster

lorem ipsum cplpearce

🙃
Riding the programming emotional roller coaster
View GitHub Profile
@cplpearce
cplpearce / kata9BouncyCastles.js
Created August 9, 2020 00:21
Kata 9 - Bouncy Castles
// Use the value below whenever you need the value of Pi
const PI = 3.14159 ;
const sphereVolume = function (radius) {
// V = 4/3 πr³
return ((4/3) * (PI * Math.pow(radius, 3)));
}
console.log(4186 < sphereVolume(10) && sphereVolume(10) < 4189);
@cplpearce
cplpearce / kata10TheGreatCodevilleBakeOff.js
Created August 9, 2020 01:45
Kata 10 - The Great Codeville Bake-off
const chooseRecipe = function(bakeryA, bakeryB, recipes) {
let applicableRecipies = '';
for (let recipe of recipes) {
let boolBakeryA = false;
let boolBakeryB = false;
for (let ingredient of recipe.ingredients) {
bakeryA.includes(ingredient) && (boolBakeryA = true);
bakeryB.includes(ingredient) && (boolBakeryB = true);
}
(boolBakeryA && boolBakeryB) && (applicableRecipies += recipe.name);
@cplpearce
cplpearce / kata10TalkingCalendar.js
Created August 9, 2020 02:35
Kata 10 - Talking Calendar
const talkingCalendar = function(date) {
const dateArray = date.split('/');
const months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
let friendlyDate = {day : 0, month : '', year : 0};
friendlyDate.day = +dateArray[2] + (+dateArray[2] === 1 ? 'st' : (+dateArray[2] === 2 ? 'nd' : +dateArray[2] === 3 ? 'rd' : 'th'));
friendlyDate.month = months[(+dateArray[1]) - 1];
friendlyDate.year = dateArray[0];
@cplpearce
cplpearce / kata11ChangeCalculator.js
Created August 9, 2020 03:09
Kata 11 - Change Calculator
const calculateChange = function(total, cash) {
// c(hange)
let c = {
twentyDollar : 0,
tenDollar : 0,
fiveDollar : 0,
twoDollar : 0,
oneDollar : 0,
quarter : 0,
dime : 0,
@cplpearce
cplpearce / kata12OrganizingInstructors.js
Created August 9, 2020 03:56
Kata 12 - Organizing Instructors
// In this exercise, we will be given a list of instructors and we will create a single object to organize them based on their course.
// Input
const organizeInstructors = function(instructors) {
let org = {};
for (const i of instructors) {
org[i.course] ? org[i.course].push(i.name) : org[i.course] = [i.name];
}
return org;
@cplpearce
cplpearce / kata13CaseMakerII.js
Created August 11, 2020 18:53
Kata 13 - Case Maker II
const makeCase = function (input, scheme) {
(typeof scheme !== 'object') && (scheme = [scheme]);
let arrStr = [input];
for (let sch of scheme){
let i = 0;
let cap = false;
for (let c of arrStr.join('')) {
if (sch === 'camel') {
c === ' ' ? cap = true : cap === true ? (arrStr[i] = c.toUpperCase()) && (cap = false) : arrStr[i] = c;
i++;
@cplpearce
cplpearce / kata14JsObjectFromUrlEncodedString.js
Created August 11, 2020 20:23
Kata 14 - JS Object From URL Encoded String
const urlDecode = function(text) {
text = text.replace(/%20/g, ' ');
let strArray = text.split(/[(=)|(&)]+/);
let results = {};
for (let i = 0; i < strArray.length; i += 2)
results[strArray[i]] = strArray[i + 1];
return results
};
console.log(urlDecode("duck=rubber"));
@cplpearce
cplpearce / kata15SquareCode.js
Created August 12, 2020 01:05
Kata 15 - Square Code
const squareCode = function(message) {
msg = message.replace(/ +/g, '');
let len = msg.length;
let sqR = Math.ceil(Math.sqrt(len));
let rS = [];
for (let r = 0; r < sqR; r++) {
for (let i = 0; i < sqR; i++) {
rS.push(msg[r + (i * sqR)])
}
rS.push(' ');
@cplpearce
cplpearce / kata16QueenThreatDetector.js
Created August 14, 2020 15:55
Kata 16 - Queen Threat Detector
let wQ = [0, 5];
let bQ = [5, 0];
let board = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
@cplpearce
cplpearce / metadata_version_2
Created February 21, 2022 05:20
metadata_version_2
{
metadata: {
core: {
name: "ISR Coverage",
uid: "7c2f79e7-2653-4adb-9e18-270761b3a0b1",
version: 1,
type: "tool",
},
api: {
method: "post",