Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions 03week/pigLatin/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<title>pig latin</title>
<meta charset="utf-8">
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="style.css">
<link href="https://fonts.googleapis.com/css?family=Roboto:400,400i,700,700i" rel="stylesheet">
</head>

<body>
<h1>pig latin translator</h1>
<main>
<section>
<form>
<label for="engword"><h3>english here:</h3></label>
<input type="text" id="engword" name="engword">
<button onclick="pigLatin()">!</button>
</form>
</section>
<section>
<p id="pLatin">answer here.</p>
</section>
</main>

<script src="pigLatinGUI.js"></script>
</body>
</html>
68 changes: 68 additions & 0 deletions 03week/pigLatin/pigLatinGUI.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
'use strict';

const assert = require('assert');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});


function pigLatin(str) {
let vowels = ['a', 'e', 'i', 'o', 'u'],
trimmedWord = str.trim().toLowerCase(),
result = trimmedWord.split('');

if (vowels.includes(trimmedWord.charAt(0))) {
return str += 'yay';
} else {
for (var i = 0; i < trimmedWord.length; i++) {
if (!vowels.includes(trimmedWord[i])) {
result.push(result.shift());
} else {
result.push('ay');
return result.join('');
}
}
}
document.getElementById("pLatin").innerHTML = '';
}





function getPrompt() {
rl.question('word ', (answer) => {
console.log( pigLatin(answer) );
getPrompt();
});
}

// Tests

if (typeof describe === 'function') {

describe('#pigLatin()', () => {
it('should translate a simple word', () => {
assert.equal(pigLatin('car'), 'arcay');
assert.equal(pigLatin('dog'), 'ogday');
});
it('should translate a complex word', () => {
assert.equal(pigLatin('create'), 'eatecray');
assert.equal(pigLatin('valley'), 'alleyvay');
});
it('should attach "yay" if word begins with vowel', () => {
assert.equal(pigLatin('egg'), 'eggyay');
assert.equal(pigLatin('emission'), 'emissionyay');
});
it('should lowercase and trim word before translation', () => {
assert.equal(pigLatin('HeLlO '), 'ellohay');
assert.equal(pigLatin(' RoCkEt'), 'ocketray');
});
});
} else {

getPrompt();

}
128 changes: 128 additions & 0 deletions 03week/pigLatin/reset.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-weight: normal;
vertical-align: baseline;
background: transparent;
}

article, aside, figure, footer, header, nav, section, details, summary {display: block;}

/* Handle box-sizing while better addressing child elements:
https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
html {
box-sizing: border-box;
}

*,
*:before,
*:after {
box-sizing: inherit;
}

/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */

/* Responsive images and other embedded objects
*/
img,
object,
embed {max-width: 100%;}

/*
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
In fact, it *will* cause problems with Google Maps' controls at small size.
If this is the case for you, try uncommenting the following:

#map img {
max-width: none;
}
*/

/* force a vertical scrollbar to prevent a jumpy page */
html {overflow-y: scroll;}

/* we use a lot of ULs that aren't bulleted.
don't forget to restore the bullets within content. */
ul {list-style: none;}

blockquote, q {quotes: none;}

blockquote:before,
blockquote:after,
q:before,
q:after {content: ''; content: none;}

a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}

del {text-decoration: line-through;}

abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}

/* tables still need cellspacing="0" in the markup */
table {border-collapse: collapse; border-spacing: 0;}
th {font-weight: bold; vertical-align: bottom;}
td {font-weight: normal; vertical-align: top;}

hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}

input, select {vertical-align: middle;}

pre {
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
word-wrap: break-word; /* IE */
}

input[type="radio"] {vertical-align: text-bottom;}
input[type="checkbox"] {vertical-align: bottom;}
.ie7 input[type="checkbox"] {vertical-align: baseline;}
.ie6 input {vertical-align: text-bottom;}

select, input, textarea {font: 99% sans-serif;}

table {font-size: inherit; font: 100%;}

small {font-size: 85%;}

strong {font-weight: bold;}

td, td img {vertical-align: top;}

/* Make sure sup and sub don't mess with your line-heights https://gist.github.com/413930 */
sub, sup {font-size: 75%; line-height: 0; position: relative;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}

/* standardize any monospaced elements */
pre, code, kbd, samp {font-family: monospace, sans-serif;}

/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {cursor: pointer;}

/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {margin: 0;}

/* make buttons play nice in IE */
button,
input[type=button] {width: auto; overflow: visible;}

/* scale images in IE7 more attractively */
.ie7 img {-ms-interpolation-mode: bicubic;}

/* prevent BG image flicker upon hover
(commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/

/* let's clear some floats */
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
43 changes: 43 additions & 0 deletions 03week/pigLatin/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
* {
box-sizing: border-box;
font-family: 'Roboto', sans-serif;
color: #4d4d4d;
letter-spacing: .5px;
line-height: 190%;
}
body {
margin: 10%;
}
h1 {
text-align: center;
font-size: 20px;
font-weight: 700;
padding: 20px;
}
main {
border: 1px solid #fecfd9;
padding: 20px;
}
section {
display: flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: 9px;
text-transform: uppercase;
padding: 20px;
}
input[type=text] {
display: inline-block;
width: 100px;
padding: 5px;
border: 1px solid #fafafa;
}

#answer {
display: inline-block;
width: 21px;
height: 21px;
text-align: center;
font-size: 9px;
}
1 change: 1 addition & 0 deletions 03week/ticTacToe.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ let board = [
];

let playerTurn = 'X';
let playerTurn = 'O';

function printBoard() {
console.log(' 0 1 2');
Expand Down