From 24a3b73dd603aba639c01e38347be896a238d03d Mon Sep 17 00:00:00 2001 From: Kiley Lewis Date: Wed, 17 Apr 2019 19:38:32 -0500 Subject: [PATCH 1/5] first save plgui --- 03week/pigLatin/index.html | 13 +++++++++++++ 03week/pigLatin/pigLatinGUI.js | 20 ++++++++++++++++++++ 03week/pigLatin/style.css | 0 3 files changed, 33 insertions(+) create mode 100644 03week/pigLatin/index.html create mode 100644 03week/pigLatin/pigLatinGUI.js create mode 100644 03week/pigLatin/style.css diff --git a/03week/pigLatin/index.html b/03week/pigLatin/index.html new file mode 100644 index 000000000..8f8adffc5 --- /dev/null +++ b/03week/pigLatin/index.html @@ -0,0 +1,13 @@ + + + + pig latin + + + + + + + + + diff --git a/03week/pigLatin/pigLatinGUI.js b/03week/pigLatin/pigLatinGUI.js new file mode 100644 index 000000000..9fde28e0d --- /dev/null +++ b/03week/pigLatin/pigLatinGUI.js @@ -0,0 +1,20 @@ +// trimmed (no spaces before or after) and lowercase. .trim() .toLowercase() +str = str.trim().toLowercase() +// put first letter at end of word, add "ay". + const vowels = ["a", "e", "i", "o", "u"]; + let vowelIndex = 0; + + if (vowels.includes(str[o])) { + return str + "yay"; + } else { + for (let char of str) { + if(vowels.includes(char)) { + vowelIndex = str.indexOf(char); + break; + } + } + return str.slice(vowelIndex) + str.slice(0, vowelIndex) + "ay"; + } + + +} \ No newline at end of file diff --git a/03week/pigLatin/style.css b/03week/pigLatin/style.css new file mode 100644 index 000000000..e69de29bb From 5d388311b2d000598b4dd478ed9da2874af81d2c Mon Sep 17 00:00:00 2001 From: Kiley Lewis Date: Sun, 21 Apr 2019 19:20:15 -0500 Subject: [PATCH 2/5] save pig latin gui --- 03week/pigLatin/index.html | 21 +++++- 03week/pigLatin/pigLatinGUI.js | 1 - 03week/pigLatin/reset.css | 128 +++++++++++++++++++++++++++++++++ 03week/pigLatin/style.css | 43 +++++++++++ 4 files changed, 189 insertions(+), 4 deletions(-) create mode 100644 03week/pigLatin/reset.css diff --git a/03week/pigLatin/index.html b/03week/pigLatin/index.html index 8f8adffc5..a180b481a 100644 --- a/03week/pigLatin/index.html +++ b/03week/pigLatin/index.html @@ -3,11 +3,26 @@ pig latin - + + + - - +

pig latin translator

+
+
+
+ + + +
+
+
+

answer here.

+
+
+ + diff --git a/03week/pigLatin/pigLatinGUI.js b/03week/pigLatin/pigLatinGUI.js index 9fde28e0d..93b738ec7 100644 --- a/03week/pigLatin/pigLatinGUI.js +++ b/03week/pigLatin/pigLatinGUI.js @@ -17,4 +17,3 @@ str = str.trim().toLowercase() } -} \ No newline at end of file diff --git a/03week/pigLatin/reset.css b/03week/pigLatin/reset.css new file mode 100644 index 000000000..54a64b123 --- /dev/null +++ b/03week/pigLatin/reset.css @@ -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; } \ No newline at end of file diff --git a/03week/pigLatin/style.css b/03week/pigLatin/style.css index e69de29bb..67deffcd4 100644 --- a/03week/pigLatin/style.css +++ b/03week/pigLatin/style.css @@ -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; +} \ No newline at end of file From 5abf3761360df05fa77c587a36aa4b2e4b73eaed Mon Sep 17 00:00:00 2001 From: Kiley Lewis Date: Sun, 21 Apr 2019 22:04:41 -0500 Subject: [PATCH 3/5] update --- 03week/ticTacToe.js | 1 + 1 file changed, 1 insertion(+) diff --git a/03week/ticTacToe.js b/03week/ticTacToe.js index 1abf5b900..c78a99c12 100644 --- a/03week/ticTacToe.js +++ b/03week/ticTacToe.js @@ -13,6 +13,7 @@ let board = [ ]; let playerTurn = 'X'; +let playerTurn = 'O'; function printBoard() { console.log(' 0 1 2'); From d37e9a73eab0f22576e8f3a574cbbbaba7562f58 Mon Sep 17 00:00:00 2001 From: Kiley Lewis Date: Sun, 21 Apr 2019 22:10:33 -0500 Subject: [PATCH 4/5] update --- 03week/pigLatin/pigLatinGUI.js | 71 +++++++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 13 deletions(-) diff --git a/03week/pigLatin/pigLatinGUI.js b/03week/pigLatin/pigLatinGUI.js index 93b738ec7..eca9372e4 100644 --- a/03week/pigLatin/pigLatinGUI.js +++ b/03week/pigLatin/pigLatinGUI.js @@ -1,19 +1,64 @@ -// trimmed (no spaces before or after) and lowercase. .trim() .toLowercase() -str = str.trim().toLowercase() -// put first letter at end of word, add "ay". - const vowels = ["a", "e", "i", "o", "u"]; - let vowelIndex = 0; - - if (vowels.includes(str[o])) { - return str + "yay"; +'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 (let char of str) { - if(vowels.includes(char)) { - vowelIndex = str.indexOf(char); - break; + for (var i = 0; i < trimmedWord.length; i++) { + if (!vowels.includes(trimmedWord[i])) { + result.push(result.shift()); + } else { + result.push('ay'); + return result.join(''); } } - return str.slice(vowelIndex) + str.slice(0, vowelIndex) + "ay"; } +} + + +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(); +} \ No newline at end of file From 9e82b1b020ef694460acfb3d40659cc48f301283 Mon Sep 17 00:00:00 2001 From: Kiley Lewis Date: Sun, 21 Apr 2019 22:23:56 -0500 Subject: [PATCH 5/5] piglatingui --- 03week/pigLatin/index.html | 2 +- 03week/pigLatin/pigLatinGUI.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/03week/pigLatin/index.html b/03week/pigLatin/index.html index a180b481a..5ebdea106 100644 --- a/03week/pigLatin/index.html +++ b/03week/pigLatin/index.html @@ -15,7 +15,7 @@

pig latin translator

- +
diff --git a/03week/pigLatin/pigLatinGUI.js b/03week/pigLatin/pigLatinGUI.js index eca9372e4..8bedd1ce1 100644 --- a/03week/pigLatin/pigLatinGUI.js +++ b/03week/pigLatin/pigLatinGUI.js @@ -22,10 +22,14 @@ function pigLatin(str) { } else { result.push('ay'); return result.join(''); + } } } + document.getElementById("pLatin").innerHTML = ''; } -} + + + function getPrompt() {