Skip to content

CassioJhones/Robotron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robotron-2023

Este código é uma implementação de JavaScript que manipula elementos de uma página HTML

Ele começa declarando duas variáveis, "controle" e "estatisticas", que são usadas para selecionar elementos da página usando o método "querySelectorAll". Esses elementos são usados para controlar a manipulação de dados da página. Depois foi declarado um objeto "peças", que contém informações das diferentes partes do robo.

const controle = document.querySelectorAll("[data-controle]")
const estatisticas = document.querySelectorAll('[data-estatistica')
const pecas = {
    "bracos": {
        "forca": 29,
        "poder": 35,
        "energia": -21,
        "velocidade": -5
    },

    "blindagem": {
        "forca": 41,
        "poder": 20,
        "energia": 0,
        "velocidade": -20
    },
    "nucleos":{
        "forca": 0,
        "poder": 7,
        "energia": 48,
        "velocidade": -24
    },
    "pernas":{
        "forca": 27,
        "poder": 21,
        "energia": -32,
        "velocidade": 42
    },
    "foguetes":{
        "forca": 0,
        "poder": 28,
        "energia": 0,
        "velocidade": -2
    }
}

Em seguida, a variável "controle" é percorrida usando um loop "forEach", e um evento 'click' é adicionado a cada elemento. Quando um elemento é clicado, a função "manipulaDados" é chamada com dois argumentos, "operação" e "controle", que são usados para manipular os dados na página. A função "atualizaEstatisticas" é chamada com um argumento "peça" que é usado para atualizar as estatísticas na página.

controle.forEach(  (elemento) => {
    elemento.addEventListener('click', (evento) => {
        manipulaDados(evento.target.dataset.controle, evento.target.parentNode);
        atualizaEstatisticas(evento.target.dataset.peca);
    })
} )

function manipulaDados(operacao, controle){
    const peca = controle.querySelector('[data-contador]');
    
    if (operacao === "-") {
        peca.value = parseInt(peca.value) -1
    } else{
        peca.value = parseInt(peca.value) +1
    }}


function atualizaEstatisticas(peca) {
    estatisticas.forEach( (elemento) => {
        elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica]
    } )
}

A função "manipulaDados" verifica se o valor de "operação" é "-", e se for, subtrai 1 do contador de peças, caso contrário, adiciona 1. A função "atualizaEstatisticas" percorre a variável "estatisticas" e atualiza o conteúdo de cada elemento com base nos valores contidos no objeto "peças".