diff --git a/2019-setembro/immurderer/README.md b/2019-setembro/immurderer/README.md
new file mode 100644
index 0000000..8147f3b
--- /dev/null
+++ b/2019-setembro/immurderer/README.md
@@ -0,0 +1,41 @@
+
+
+[](https://immurderer-pense-bem.netlify.com)
+
+## Pense Bem by ImMurderer
+
+Minha ideia foi manter o layout original.
+As cores foram adaptadas, visto que estavam muito saturadas, para a paleta foi usada uma [Flat Aussie](https://flatuicolors.com/palette/au).
+Preferi não manter uma cor sólida ou degradê no fundo, então foi escolhido o pattern [Hodge Podge](http://thepatternlibrary.com/#hodgepodge).
+O site está relativamente responsivo, há apenas alguns erros em questão de tamanho das linhas de botões. Há também um problema de saturação com os emojis no android, que ficam praticamente invisiveis nos botões grandes.
+
+---
+
+## Instruções
+
+Ligue o aparelho, escolha um jogo. Pressione enter para responder as questões na tela! 😄
+
+### Jogos
+
+- Adição
+ - Use os botões numéricos para escolher o resultado da soma.
+- Subtração
+ - Use os botões numéricos para escolher o resultado da subtração.
+- Multiplicação
+
+ - Use os botões numéricos para escolher o resultado da multiplicação.
+
+- Divisão
+ - Use os botões numéricos para escolher o resultado da divisão.
+- Aritmética
+ - São apresentadas diversas contas aleatórias, use os botões numéricos para escolher o resultado.
+- Operação
+ - São apresentadas diversas contas aleatórias sem o operador e seus resultados, utilize os botões azuis para escolher o operador correto que levará a resposta.
+- Pokemón
+ - São apresentados diversos pokemóns, utilize os botões grandes para escolher o tipo certo do pokemón.
+- ~~666~~
+ - RXN0ZSBqb2dvIGVzdMOhIGFtYWxkacOnb2FkbywgcG9yIGFsZ3VtIG1vdGl2byBlbGUgbsOjbyBtb3N0cmEgbmFkYSBhbMOpbSBkZSBjYXJhY3TDqXJlcyBhbGVhdG9yaW9zIGUgdW1hIG11c2ljYSBpbmZlcm5hbCEhIS4=
+- Numero do Meio
+ - São apresentados 2 numeros insira, com os botões numéricos, a média destes numeros.
+- Adivinhe o Numero
+ - O video-game gera um numero aleatório, use os botões numéricos para adivinhar.
diff --git a/2019-setembro/immurderer/css/fonts/DS-DIGI.TTF b/2019-setembro/immurderer/css/fonts/DS-DIGI.TTF
new file mode 100644
index 0000000..0925877
Binary files /dev/null and b/2019-setembro/immurderer/css/fonts/DS-DIGI.TTF differ
diff --git a/2019-setembro/immurderer/css/fonts/DS-DIGIB.TTF b/2019-setembro/immurderer/css/fonts/DS-DIGIB.TTF
new file mode 100644
index 0000000..064ad47
Binary files /dev/null and b/2019-setembro/immurderer/css/fonts/DS-DIGIB.TTF differ
diff --git a/2019-setembro/immurderer/css/fonts/DS-DIGII.TTF b/2019-setembro/immurderer/css/fonts/DS-DIGII.TTF
new file mode 100644
index 0000000..2aae3d8
Binary files /dev/null and b/2019-setembro/immurderer/css/fonts/DS-DIGII.TTF differ
diff --git a/2019-setembro/immurderer/css/fonts/DS-DIGIT.TTF b/2019-setembro/immurderer/css/fonts/DS-DIGIT.TTF
new file mode 100644
index 0000000..65642f9
Binary files /dev/null and b/2019-setembro/immurderer/css/fonts/DS-DIGIT.TTF differ
diff --git a/2019-setembro/immurderer/css/imgs/hodgepodge.png b/2019-setembro/immurderer/css/imgs/hodgepodge.png
new file mode 100644
index 0000000..3e88ff8
Binary files /dev/null and b/2019-setembro/immurderer/css/imgs/hodgepodge.png differ
diff --git a/2019-setembro/immurderer/css/main.css b/2019-setembro/immurderer/css/main.css
new file mode 100644
index 0000000..a734fea
--- /dev/null
+++ b/2019-setembro/immurderer/css/main.css
@@ -0,0 +1,356 @@
+@font-face {
+ font-family: DIGIT;
+ src: url("./fonts/DS-DIGI.TTF");
+}
+
+* {
+ padding: 0;
+ margin: 0;
+ box-sizing: content-box;
+}
+body {
+ background: url("./imgs/hodgepodge.png") lightblue;
+}
+#penseBem {
+ width: 70%;
+ margin: auto;
+ margin-top: 50px;
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
+ text-align: right;
+ padding-bottom: 5px;
+}
+/* #region front */
+#front {
+ display: flex;
+ height: 150px;
+ align-items: center;
+ justify-content: center;
+ border-radius: 5px;
+ background-color: whitesmoke;
+}
+
+#front::before {
+ content: "";
+ position: relative;
+ left: 2%;
+ top: 82px;
+ background-color: white;
+ box-shadow: inset black;
+ width: 10%;
+ height: 20px;
+ box-shadow: inset 0 0 10px black;
+ z-index: -10;
+}
+#front::after {
+ content: "";
+ position: relative;
+ right: 2%;
+ top: 82px;
+ background-color: white;
+ box-shadow: inset black;
+ width: 10%;
+ height: 20px;
+ box-shadow: inset 0 0 10px black;
+ z-index: -10;
+}
+
+/* #endregion */
+
+/* #region disk */
+#disk {
+ width: 50%;
+ height: 112px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border: 5px inset;
+ border-radius: 0 5px 5px 0;
+}
+
+.cube {
+ position: absolute;
+ width: 75px;
+ height: 50px;
+ border: 5px inset;
+ border-radius: 5px;
+}
+.rect {
+ position: absolute;
+ background-color: white;
+ width: 200px;
+ height: 20px;
+ border: 5px inset;
+ border-radius: 5px;
+}
+/* #endregion */
+
+/* #region lcd */
+#display {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ color: white;
+ overflow: hidden;
+}
+
+#lcd {
+ color: red;
+ font-size: 4em;
+ line-height: 83px;
+ background-color: #222;
+ border-radius: 5px 0 0 0;
+ padding: 5px 15px;
+ font-family: DIGIT, sans-serif, serif;
+ height: 83px;
+}
+
+#lcd-footer {
+ display: flex;
+ background-color: #333;
+ padding: 5px 15px;
+ justify-content: space-between;
+ align-items: center;
+ border-radius: 0 0 0 5px;
+}
+
+#lcd-footer div {
+ display: flex;
+}
+
+.brick {
+ width: 50px;
+ height: 10px;
+ margin-left: 5px;
+}
+/* #endregion */
+
+/* #region keys */
+#keyboard {
+ padding: 15px 15px;
+ margin-top: 15px;
+ background-color: whitesmoke;
+ border-radius: 5px;
+}
+
+#keys {
+ background-color: #ccc;
+ padding: 5px 15px;
+ display: flex;
+ flex-direction: column;
+ border: 5px inset;
+}
+
+#keys .line {
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: 15px;
+ justify-content: space-between;
+ width: 95%;
+ align-items: center;
+}
+
+#keys > :first-child > :first-child {
+ margin-top: 15px;
+ align-self: flex-start;
+}
+#keys > :nth-child(2) > :first-child {
+ align-self: flex-end;
+}
+#keys > :last-child > :first-child {
+ font-size: 0.6em;
+ align-self: flex-start;
+}
+/* #endregion */
+
+ul {
+ list-style-type: none;
+}
+
+/* #region buttons */
+.btn,
+.btn-lg {
+ display: flex;
+ background-color: white;
+ color: black;
+ align-content: space-between;
+ justify-content: center;
+ flex-direction: column;
+ text-align: center;
+ width: 65px;
+ height: 65px;
+ word-wrap: break-word;
+ border-radius: 5px;
+ box-shadow: inset 0 0 10px black;
+ color: blue;
+ font-weight: bold;
+}
+.btn:hover,
+.btn-lg:hover {
+ box-shadow: none;
+ cursor: pointer;
+}
+.btn-lg {
+ width: 100px;
+ height: 145px;
+ font-size: 28px;
+}
+.btn span {
+ height: 50%;
+ line-height: 200%;
+ border-radius: 5px;
+}
+/* #endregion */
+
+/* #region rhomboid */
+.rhomboid {
+ transform: skew(-15deg);
+ margin-left: 5px;
+}
+
+.rhomboid-btn-group {
+ display: flex;
+ margin-left: 15px;
+}
+
+/* #endregion */
+
+/* #region double-stacked */
+.double-stacked {
+ display: grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr 1fr;
+ grid-row-gap: 15px;
+ grid-column-gap: 5px;
+ margin-left: 15px;
+ width: 300px;
+}
+
+.double-stacked .first-line,
+.last-line {
+ display: flex;
+}
+.double-stacked .first-line {
+ justify-self: flex-end;
+}
+.double-stacked .last-line {
+ justify-self: flex-start;
+}
+.double-stacked .btn {
+ margin-right: 5px;
+}
+/* #endregion */
+
+#logo {
+ height: 25px;
+ font-size: 1.5em;
+ background-color: antiquewhite;
+ padding: 0 50px;
+ border: 1px solid lightgray;
+ border-radius: 5px;
+}
+
+.marquee {
+ white-space: nowrap;
+ background-color: #222;
+ overflow: hidden;
+}
+.marquee > span {
+ padding-left: 100%;
+ animation: marquee 15s linear infinite;
+}
+
+@keyframes marquee {
+ 0% {
+ transform: translate(60%, 0);
+ }
+ 100% {
+ transform: translate(-100%, 0);
+ }
+}
+
+@media screen and (max-width: 770px) {
+ #front {
+ position: relative;
+ }
+ #front #disk {
+ display: none;
+ }
+ #display {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ #penseBem {
+ width: 100%;
+ margin-top: 0;
+ }
+ #front {
+ border-radius: 0;
+ }
+
+ #keyboard {
+ border-radius: 0px;
+ }
+ .double-stacked {
+ padding-top: 15px;
+ }
+ .btn,
+ .btn-lg {
+ max-width: 64px;
+ max-height: 64px;
+ font-size: 12px;
+ }
+ .btn-lg {
+ max-width: 64px;
+ max-height: 64px;
+ }
+}
+@media screen and (min-width: 1500px) {
+ .btn,
+ .btn-lg {
+ width: 82px;
+ height: 82px;
+ font-size: 16px;
+ }
+ .btn-lg {
+ width: 142px;
+ height: 142px;
+ font-size: 32px;
+ }
+ .btn > span {
+ line-height: 250%;
+ }
+}
+
+/* #region colors */
+.pink {
+ background-color: #be2edd;
+}
+.yellow {
+ background-color: #f9ca24;
+ color: #324e08;
+}
+.blue {
+ background-color: #4834d4;
+}
+.green {
+ background-color: #6ab04c;
+ color: #1e1e1e;
+}
+.red {
+ background-color: #eb4d4b;
+ color: #1e0c0c;
+ font-weight: bold;
+}
+
+.pink,
+.blue,
+.green,
+.red {
+ color: white;
+ font-weight: bold;
+}
+
+/* #endregion */
diff --git a/2019-setembro/immurderer/favicon.png b/2019-setembro/immurderer/favicon.png
new file mode 100644
index 0000000..a88474c
Binary files /dev/null and b/2019-setembro/immurderer/favicon.png differ
diff --git a/2019-setembro/immurderer/index.html b/2019-setembro/immurderer/index.html
new file mode 100644
index 0000000..981ac7e
--- /dev/null
+++ b/2019-setembro/immurderer/index.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+ Pense Bem!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/2019-setembro/immurderer/js/games.js b/2019-setembro/immurderer/js/games.js
new file mode 100644
index 0000000..2949591
--- /dev/null
+++ b/2019-setembro/immurderer/js/games.js
@@ -0,0 +1,60 @@
+function operacao(operador = null) {
+ questoes = [];
+ for (let i = 0; i < maxQuestions; i++) {
+ let b = Math.floor(Math.random() * maxNumber) + 1;
+ let a = Math.floor(Math.random() * maxNumber) + (operador == "/" ? b : 1);
+ operador =
+ operador == null ? "+-/*"[Math.floor(Math.random() * 4)] : operador;
+ conta = `${a}${operador}${b}`;
+ questoes.push({ conta: conta + " = ", res: Math.floor(eval(conta)) });
+ }
+}
+
+function gameOperacao() {
+ questoes = [];
+ for (let i = 0; i < maxQuestions; i++) {
+ let b = Math.floor(Math.random() * maxNumber) + 1;
+ let a = Math.floor(Math.random() * maxNumber) + 1;
+ operador = "+-/*"[Math.floor(Math.random() * 4)];
+ resultado = Math.floor(eval(`${a}${operador}${b}`));
+ conta = `${a}_${b}=${resultado} | `;
+ res = operador;
+ questoes.push({ conta, res });
+ }
+}
+
+function numeroDoMeio() {
+ questoes = [];
+ for (let i = 0; i < maxQuestions; i++) {
+ let a = Math.floor(Math.random() * 100) + 1;
+ let b = Math.floor(Math.random() * 100) + 1;
+ let media = Math.floor((a + b) / 2);
+ conta = `${a}~_~${b} | `;
+ questoes.push({ conta, res: media });
+ }
+}
+function adivinheONumero() {
+ questoes = [];
+ let num = Math.floor(Math.random() * 10) + 1;
+ for (let i = 0; i < maxQuestions; i++) {
+ questoes.push(num);
+ }
+}
+
+function pokemon() {
+ questoes = [];
+ let apiURL = "https://pokeapi.co/api/v2/type/";
+ let types = ["🔥", "💧", "🍃", "⚡"];
+ for (let i = 0; i < maxQuestions; i++) {
+ let j = Math.floor(Math.random() * 4) + 10;
+ axios
+ .get(apiURL + j)
+ .then(response => {
+ let pokemons = response.data.pokemon;
+ let randomIndex = Math.floor(Math.random() * pokemons.length);
+ let name = pokemons[randomIndex].pokemon.name;
+ questoes.push({ conta: "🐱 " + name + " = ", res: types[j - 10] });
+ })
+ .catch(err => console.error(err));
+ }
+}
diff --git a/2019-setembro/immurderer/js/handlers.js b/2019-setembro/immurderer/js/handlers.js
new file mode 100644
index 0000000..e3cb04f
--- /dev/null
+++ b/2019-setembro/immurderer/js/handlers.js
@@ -0,0 +1,84 @@
+let lcd_isOn = false;
+let canEval = false;
+let maxNumber = 10;
+let questoes = [];
+let mostraProx = true;
+let pontuacao = 0;
+let maxQuestions = 10;
+let i = 0;
+
+const lcd = document.getElementById("lcd");
+
+function handleSuccess(condicao, mensagem = "") {
+ if (condicao) {
+ success_sound.play();
+ pontuacao += 10;
+ console.log("Acertou");
+ show("PARABENS");
+ } else {
+ fail_sound.play();
+ pontuacao -= 5;
+ show(mensagem);
+ }
+}
+function handleEnter() {
+ if (i < questoes.length) {
+ // Se não for pra mostrar
+ if (!mostraProx) {
+ // Pega o resultado do lcd
+ if (lcd.innerHTML.match(/\d(\+|\-|\*|\/)\d/)) {
+ res = /(\+|-)?\d*$/.exec(lcd.innerHTML)[0] || 0;
+ // Verifica se o resultado esta correto
+ handleSuccess(
+ questoes[i].res == res,
+ `${questoes[i].conta}${questoes[i].res}`
+ );
+ // Proibe digitar
+ canEval = false;
+ } else if (lcd.innerHTML.indexOf("~") >= 1) {
+ res = lcd.innerHTML.match(/\d*$/)[0].slice(1);
+ handleSuccess(
+ questoes[i].res == res,
+ questoes[i].conta.replace("_", questoes[i].res)
+ );
+ } else if (lcd.innerHTML.indexOf("Adivinhe") >= 0) {
+ res = lcd.innerHTML.match(/\d*$/)[0].slice(1);
+ msg =
+ i + 1 >= questoes.length
+ ? "Correto: " + questoes[i]
+ : "X Adivinhe | ";
+ handleSuccess(questoes[i] == res, msg);
+ i++;
+ return;
+ } else if (lcd.innerHTML.indexOf("🐱") >= 0) {
+ res = lcd.innerHTML.match(/(🔥|⚡|💧|🍃)$/)
+ ? lcd.innerHTML.match(/(🔥|⚡|💧|🍃)$/)[0]
+ : 0;
+ handleSuccess(
+ questoes[i].res == res,
+ questoes[i].conta + questoes[i].res
+ );
+ } else if (lcd.innerHTML.indexOf("|") >= 0) {
+ res = lcd.innerHTML.slice(-1);
+ // Mensagem de erro é conta com o underscore trocado
+ handleSuccess(
+ questoes[i].res == res,
+ questoes[i].conta.replace("_", questoes[i].res)
+ );
+ }
+ // Permite mostrar o proximo
+ mostraProx = true;
+ i++;
+ } else {
+ // Mostra a conta
+ show(questoes[i].conta || "Adivinhe _ ");
+ // Permite digitar
+ canEval = true;
+ // Impede o display de outra conta
+ mostraProx = false;
+ }
+ } else if (pontuacao > 0) {
+ show("Pontos: " + pontuacao);
+ pontuacao = 0;
+ }
+}
diff --git a/2019-setembro/immurderer/js/lcdFunctions.js b/2019-setembro/immurderer/js/lcdFunctions.js
new file mode 100644
index 0000000..3601124
--- /dev/null
+++ b/2019-setembro/immurderer/js/lcdFunctions.js
@@ -0,0 +1,42 @@
+function show(str, animate = false) {
+ lcd.innerHTML = "";
+ if (str.length > 10) {
+ lcd.parentElement.classList.add("marquee");
+ } else {
+ lcd.parentElement.classList.remove("marquee");
+ }
+ let i = 0;
+ function type() {
+ if (i < str.length) {
+ lcd.innerHTML += str.charAt(i);
+ i++;
+ setTimeout(type, 150);
+ }
+ }
+ if (animate) {
+ type();
+ return;
+ }
+ lcd.innerHTML = str;
+}
+
+function on() {
+ if (!lcd_isOn) {
+ show("HELLO", true);
+ turn_on_sound.play();
+ lcd_isOn = true;
+ }
+}
+function off() {
+ if (lcd_isOn) {
+ show("");
+ turn_off_sound.play();
+ canEval = false;
+ enterPressed = false;
+ lcd_isOn = false;
+ mostraProx = true;
+ questoes = [];
+ i = 0;
+ pontuacao = 0;
+ }
+}
diff --git a/2019-setembro/immurderer/js/main.js b/2019-setembro/immurderer/js/main.js
new file mode 100644
index 0000000..32ed069
--- /dev/null
+++ b/2019-setembro/immurderer/js/main.js
@@ -0,0 +1,66 @@
+function press(e) {
+ if (lcd_isOn) {
+ let value = e.target.innerHTML;
+ switch (value) {
+ case "ADIÇÃO":
+ operacao("+");
+ handleEnter();
+ break;
+ case "SUBTRAÇÃO":
+ operacao("-");
+ handleEnter();
+ break;
+ case "MULTIPLICAÇÃO":
+ operacao("*");
+ handleEnter();
+ break;
+ case "DIVISÃO":
+ operacao("/");
+ handleEnter();
+ break;
+ case "ARITMÉTICA":
+ operacao();
+ handleEnter();
+ break;
+ case "OPERAÇÃO":
+ gameOperacao();
+ handleEnter();
+ break;
+ case "NUMERO DO MEIO":
+ numeroDoMeio();
+ handleEnter();
+ break;
+ case "ADIVINHE O NUMERO":
+ adivinheONumero();
+ handleEnter();
+ break;
+ case "POKEMON":
+ pokemon();
+ handleEnter();
+ break;
+ case "🦈":
+ curse_sound.play();
+ show("666B4BY5H4RKW1LL34TY0UR50UL666");
+ break;
+ case "ENTER":
+ handleEnter();
+ break;
+ }
+ if (canEval) {
+ if (!isNaN(value) || value.match(/(\+|\*|\-|\/|🔥|⚡|💧|🍃)/)) {
+ lcd.innerHTML += value;
+ }
+ }
+ if (value.match(/^(DO|RÉ|MI|FÁ|SOL|LÁ|SI|DÒ|RÈ)/)) {
+ pianoSounds[value].play();
+ } else {
+ click_sound.play();
+ }
+ }
+}
+
+buttons = document.querySelectorAll(".btn, .btn-lg");
+for (let i = 0; i < buttons.length; i++) {
+ if (buttons[i].innerHTML == "LIGA") continue;
+ buttons[i].addEventListener("click", press);
+}
diff --git a/2019-setembro/immurderer/js/sounds.js b/2019-setembro/immurderer/js/sounds.js
new file mode 100644
index 0000000..58652ac
--- /dev/null
+++ b/2019-setembro/immurderer/js/sounds.js
@@ -0,0 +1,34 @@
+let turn_on_sound = new sound("./js/sounds/turn_on.wav");
+let turn_off_sound = new sound("./js/sounds/turn_off.wav");
+let click_sound = new sound("./js/sounds/click.wav");
+let success_sound = new sound("./js/sounds/success.wav");
+let fail_sound = new sound("./js/sounds/fail.wav");
+
+let pianoSounds = {
+ DO: new sound("./js/sounds/piano_notes/do.mp3"),
+ RÉ: new sound("./js/sounds/piano_notes/re.mp3"),
+ MI: new sound("./js/sounds/piano_notes/mi.mp3"),
+ FÁ: new sound("./js/sounds/piano_notes/fa.mp3"),
+ SOL: new sound("./js/sounds/piano_notes/sol.mp3"),
+ LÁ: new sound("./js/sounds/piano_notes/la.mp3"),
+ SI: new sound("./js/sounds/piano_notes/si.mp3"),
+ DÒ: new sound("./js/sounds/piano_notes/do8.mp3"),
+ RÈ: new sound("./js/sounds/piano_notes/re.mp3")
+};
+
+let curse_sound = new sound("./js/sounds/baby_shark.mp3");
+
+function sound(src) {
+ this.sound = document.createElement("audio");
+ this.sound.src = src;
+ this.sound.setAttribute("preload", "auto");
+ this.sound.setAttribute("controls", "none");
+ this.sound.style.display = "none";
+ document.body.appendChild(this.sound);
+ this.play = function() {
+ this.sound.play();
+ };
+ this.stop = function() {
+ this.sound.pause();
+ };
+}
diff --git a/2019-setembro/immurderer/js/sounds/baby_shark.mp3 b/2019-setembro/immurderer/js/sounds/baby_shark.mp3
new file mode 100644
index 0000000..460f3aa
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/baby_shark.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/click.wav b/2019-setembro/immurderer/js/sounds/click.wav
new file mode 100644
index 0000000..38ad5ae
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/click.wav differ
diff --git a/2019-setembro/immurderer/js/sounds/fail.wav b/2019-setembro/immurderer/js/sounds/fail.wav
new file mode 100644
index 0000000..5ef4702
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/fail.wav differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/do.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/do.mp3
new file mode 100644
index 0000000..a10a001
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/do.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/do8.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/do8.mp3
new file mode 100644
index 0000000..310a8c0
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/do8.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/fa.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/fa.mp3
new file mode 100644
index 0000000..84b8eef
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/fa.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/la.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/la.mp3
new file mode 100644
index 0000000..dfe27fb
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/la.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/mi.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/mi.mp3
new file mode 100644
index 0000000..f402847
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/mi.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/re.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/re.mp3
new file mode 100644
index 0000000..92ef8d8
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/re.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/si.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/si.mp3
new file mode 100644
index 0000000..f72bf3d
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/si.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/piano_notes/sol.mp3 b/2019-setembro/immurderer/js/sounds/piano_notes/sol.mp3
new file mode 100644
index 0000000..723fa1a
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/piano_notes/sol.mp3 differ
diff --git a/2019-setembro/immurderer/js/sounds/success.wav b/2019-setembro/immurderer/js/sounds/success.wav
new file mode 100644
index 0000000..5df6fee
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/success.wav differ
diff --git a/2019-setembro/immurderer/js/sounds/turn_off.wav b/2019-setembro/immurderer/js/sounds/turn_off.wav
new file mode 100644
index 0000000..0b22358
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/turn_off.wav differ
diff --git a/2019-setembro/immurderer/js/sounds/turn_on.wav b/2019-setembro/immurderer/js/sounds/turn_on.wav
new file mode 100644
index 0000000..4ded27c
Binary files /dev/null and b/2019-setembro/immurderer/js/sounds/turn_on.wav differ