Loading...
sasho91 avatar sasho91 16 Точки

08.Cards 16/100

Здравейте, 

От няколко часа се опитвам да реша задачата Cards от Exercise:DOM Manipulations (https://judge.softuni.bg/Contests/Compete/Index/1550#7), стигам до 16/100 точки и съм зациклил много вече... Може ли някой да хвърли око на кода ми и да помогне:https://pastebin.com/tfM4Hga7   ? 

 

Ще съм изключително благодарен! :)

Тагове:
0
JavaScript Advanced
Axiomatik avatar Axiomatik 2422 Точки

From what I can see there were 2 problems:

1. When both cards were selected, only one of them was marked with either green or red border, the other card was left out by the validation.

2. After the two cards were selected, the final output did not appear in the histroryDiv section.

I've made comments at the relevant places, also good to know that judge expects a space at the end of each card result, otherwise will not give full points.

Best,

Code:

function solve() {

let player1Cards = document.getElementById('player1Div');

let player2Cards = document.getElementById('player2Div');

let spanElements = document.querySelectorAll('div > span');

let historyDiv = document.querySelector("#history");

let cardHistory = [];

let upperCardSpan = spanElements[0];

let lowerCardSpan = spanElements[2];

let upperCardValue;

let lowerCardValue;

let currentUpperCard;

let currentLowerCard;

player1Cards.addEventListener('click', (e) => {

e.target.src = "images/whiteCard.jpg";

upperCardSpan.innerHTML = e.target.name;

upperCardValue = Number(e.target.name);

currentUpperCard = e.target;

if (lowerCardSpan.innerHTML != '') {

lowerCardValue = Number(lowerCardSpan.innerHTML);

cardHistory.push(`[${upperCardValue} vs ${lowerCardValue}]`);

// BOTH CARDS NEED TO BE MARKED

if (upperCardValue > lowerCardValue) {

currentUpperCard.style.border = '2px solid green';

currentLowerCard.style.border = '2px solid red';

} else {

currentUpperCard.style.border = '2px solid red';

currentLowerCard.style.border = '2px solid green';

}

// RESULT OF TWO CARDS MUST BE ADDED TO HISTORYDIV

// SPACE AT THE END OF THE STRING, OTHERWISE ERROR FROM JUDGE

historyDiv.textContent += `[${upperCardValue} vs ${lowerCardValue}] `;

}

});

player2Cards.addEventListener('click', (e) => {

e.target.src = "images/whiteCard.jpg";

lowerCardSpan.innerHTML = e.target.name;

lowerCardValue = Number(e.target.name);

currentLowerCard = e.target;

if (upperCardSpan.innerHTML != '') {

upperCardValue = Number(upperCardSpan.innerHTML);

if (upperCardValue < lowerCardValue) {

currentLowerCard.style.border = '2px solid green';

currentUpperCard.style.border = '2px solid red';

} else {

currentLowerCard.style.border = '2px solid red';

currentUpperCard.style.border = '2px solid green';

}

historyDiv.textContent += `[${upperCardValue} vs ${lowerCardValue}] `;

}

});

historyDiv.innerHTML = cardHistory.join(' ') + ' ';

}

0
sukalu88 avatar sukalu88 43 Точки

Your article is great, I have read a lot of articles but I was really impressed with your writing. Thank you, I will review this post. To know about me, please try to talk to me: bmi calculator

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.