From 5a1a2c26b6c1155d335eb5d8eb0b91cc19010beb Mon Sep 17 00:00:00 2001 From: vigdorov Date: Sat, 6 Feb 2021 11:49:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=BD=D0=B0=20=D0=BC=D0=B8=D0=BD=D1=83=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.html | 2 +- src/script.js | 61 ++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 50 insertions(+), 13 deletions(-) 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; };