Skip to content

Instantly share code, notes, and snippets.

View ericdouglas's full-sized avatar

Eric Douglas ericdouglas

View GitHub Profile
@ericdouglas
ericdouglas / dica-cap-03-ex-01.md
Last active August 29, 2015 13:55
Dica para resolução do Exercício 01 do Capítulo 03 - JavaScript Eloquente

Criando um Triângulo com Loop

Você pode começar com um programa que simplesmente imprimi os números de 1 a 7, que você pode derivar fazendo pequenas modificações do exemplo dado anteriormente que "imprimi cada número", quando o loop for foi introduzido.

Agora considere a equivalência entre números e strings do caracter hash. Você pode ir de 1 para 2 adicionando 1 (+= 1). Você pode ir de "#" para "##" adicionando o caracter (+= "#"). Assim, sua solução pode ser próxima do programa de impressão de números.

@ericdouglas
ericdouglas / dica-cap-03-ex-02.md
Created February 1, 2014 10:00
Dica para resolução do Exercício 02 do Capítulo 03 - JavaScript Eloquente

FizzBuzz

Passar por números claramente é um trabalho para um loop. E selecionar o que imprimir é um assunto da execução condicional. Lembre-se que o truque de usar o operador restante % para checar se um número é divisível por outro número (tem resto zero).

A segunda versão do programa pode ser resolvida de forma simples (apenas adicionando outro "ramo" que precisamente testa a condição dada), ou de forma mais inteligente (construindo uma cadeia de caracteres contendo a palavra para saída, e imprimindo esta palavra ou o número, se não houver palavra, potencialmente fazendo uso do elegante operador ||).

@ericdouglas
ericdouglas / cap-03-ex-02.js
Last active December 20, 2020 17:18
Resolução do Exercício 02 do Capítulo 03 - JavaScript Eloquente
var limite = 100,
contador = 1;
for ( ; contador <= limite; contador += 1 ) {
if ( contador % 3 === 0 && contador % 5 === 0 ) {
console.log( "FizzBuzz" );
} else if ( contador % 3 === 0 ) {
console.log( "Fizz" );
} else if ( contador % 5 === 0 ) {
@ericdouglas
ericdouglas / cap-03-ex-03.js
Last active December 6, 2020 03:58
Resolução do Exercício 03 do Capítulo 03 - JavaScript Eloquente
var
tamanho = 8,
tijolo1 = "#",
tijolo2 = " ",
parede1 = "",
parede2 = " ",
auxiliar = true,
contador = 1;
while ( contador < tamanho ) {
@ericdouglas
ericdouglas / dica-cap-03-ex-03.md
Created February 4, 2014 15:20
Dica para resolução do Exercício 03 do Capítulo 03 - JavaScript Eloquente

Tabuleiro de Xadrez

Esta string pode ser feita começando com valor vazio ("") e adicionando caracteres repetidamente depois disso. O caracter de nova linha é escrito como \n.

Use o console.log para inspecionar a saída do seu programa.

Para se fazer algo com duas dimensões, você vai precisar de um loop dentro de outro loop. Coloque chaves envolta do corpo dos loops para tornar fácil de se ver onde eles começam e onde terminam. Tente indentar corretamente o corpo destes loops. A ordem dos loops deve seguir a ordem em que nós escrevemos a string (linha por linha, esquerda para direita, cima para baixo). Então o outro loop manipula as linhas e o loop interno lida com os caracteres em uma linha. Você vai precisar de duas variáveis para rastrear seu progresso. Para saber se coloca um espaço ou um símbolo hash (#) em determinada posição, você pode testar se a soma dos dois contadores é ainda (% 2).

Terminando a linha, adicione um caracter de nova linha depois que esta estiver pronta, assim depois do loop

@ericdouglas
ericdouglas / bash.md
Created February 5, 2014 21:04
Simple test with jasmine-node

jasmine-node spec --autotest --watch .

Now jasmine-node listens to changes on the whole project, but only look for specs in the spec folder.

@ericdouglas
ericdouglas / gulpfile.js
Last active August 29, 2015 13:56
test gulpfile
var
gulp = require('gulp'),
jade = require('gulp-jade'),
stylus = require('gulp-stylus'),
jshint = require('gulp-jshint'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename');
gulp.task('jade', function () {
@ericdouglas
ericdouglas / gulpfile.js
Created February 7, 2014 00:14
Error gulpifle
// error
var gulp = require('gulp');
var jade = require('gulp-jade');
var stylus = require('gulp-stylus');
var EXPRESS_PORT = 4000;
var EXPRESS_ROOT = __dirname;
var LIVERELOAD_PORT = 35729;
var lr;
@ericdouglas
ericdouglas / spec-sum.js
Last active August 29, 2015 13:56
Test and debug returning different values
describe('function that sum numbers between 1 and 100', function () {
var out = sum;
it('verify if the sum is correct', function () {
expect( out ).toBeDefined();
expect( out() ).toBe( 5050 );
});
@ericdouglas
ericdouglas / package.json
Created February 13, 2014 23:27
Package.json
{
"name": "001",
"version": "0.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",