diff --git a/src/index.html b/src/index.html index 397cdae..4b376e2 100644 --- a/src/index.html +++ b/src/index.html @@ -24,7 +24,7 @@
- + + + = diff --git a/src/script.js b/src/script.js index 51a88c1..20bef6c 100644 --- a/src/script.js +++ b/src/script.js @@ -17,6 +17,12 @@ const FIRST_INPUT_ID = 'first-input'; const SECOND_INPUT_ID = 'second-input'; const SUM_INPUT_ID = 'sum-input'; const RESULT_CONTAINER_ID = 'result-container'; +const SIGN_SPAN_ID = 'sign-span'; + +const EXAMPLE_TYPE = { + PLUS: '+', + MINUS: '-', +}; const EVENTS = { CLICK: 'click', @@ -44,22 +50,47 @@ const checkButton = document.querySelector(`#${CHECK_BUTTON_ID}`); const startButton = document.querySelector(`#${START_BUTTON_ID}`); const repeatButton = document.querySelector(`#${REPEAT_BUTTON_ID}`); const resultContainer = document.querySelector(`#${RESULT_CONTAINER_ID}`); +const signSpan = document.querySelector(`#${SIGN_SPAN_ID}`); const getRandomNumber = (maxNumber) => Math.round(Math.random() * maxNumber); const getFirstNumber = () => getRandomNumber(MAX_NUMBER); const getSecondNumber = (firstNumber) => getRandomNumber(MAX_NUMBER - firstNumber); const getSum = (first, second) => first + second; -const getExample = () => { - const first = getFirstNumber(); - const second = getSecondNumber(first); + +const getPlusExample = () => { + const first = getRandomNumber(MAX_NUMBER); + const second = getRandomNumber(MAX_NUMBER - first); return { first, second, - sum: getSum(first, second), + sum: first + second, + type: EXAMPLE_TYPE.PLUS, }; }; +const getMinusExample = () => { + const first = getRandomNumber(MAX_NUMBER); + const second = getRandomNumber(first); + + return { + first, + second, + sum: first - second, + type: EXAMPLE_TYPE.MINUS + }; +}; + +const getExample = () => { + const exampleOrder = getRandomNumber(1); + switch (exampleOrder) { + case 0: + return getPlusExample(); + case 1: + return getMinusExample(); + } +} + const getData = (defaultData) => { try { return JSON.parse(localStorage.getItem(LOCAL_DATA_KEY)) || defaultData; @@ -71,12 +102,13 @@ const setData = (data) => { localStorage.setItem(LOCAL_DATA_KEY, JSON.stringify(data)); }; -const removeRandom = ({first, second, sum}) => { +const removeRandom = ({first, second, sum, type}) => { const miss = getRandomNumber(2); return { first: miss !== 0 ? first : '', second: miss !== 1 ? second : '', sum: miss !== 2 ? sum : '', + type, }; } @@ -85,10 +117,15 @@ const setInput = (input, value) => { input.disabled = value !== ''; }; -const setInputs = ({first, second, sum}) => { +const setTextContainer = (container, value) => { + container.textContent = value; +} + +const setInputs = ({first, second, sum, type}) => { setInput(firstInput, first); setInput(secondInput, second); setInput(sumInput, sum); + setTextContainer(signSpan, type); }; const getInputs = () => { @@ -96,25 +133,25 @@ const getInputs = () => { first: firstInput.value, second: secondInput.value, sum: sumInput.value, + type: signSpan.textContent, }; }; const setExample = () => { - const {first, second, sum} = getExample(); - store.currentExample = {first, second, sum}; - setInputs(removeRandom({first, second, sum})); + const {first, second, sum, type} = getExample(); + store.currentExample = {first, second, sum, type}; + setInputs(removeRandom({first, second, sum, type})); }; const isEqual = (origin, answer) => { - return Object.entries(origin).every(([key, value]) => { return `${value}` === `${answer[key]}`; }); }; -const makeExampleDiv = ({first, second, sum}) => { +const makeExampleDiv = ({first, second, sum, type}) => { const div = document.createElement('div'); - div.textContent = `${first} + ${second} = ${sum}`; + div.textContent = `${first} ${type} ${second} = ${sum}`; return div; };