Отнодно задачи "9. *Dungeonest Dark от JS Fundamentals 3" и "Problem 2. Mu Online от MidExam 29.02.2020"
Това е абсолютно идентична задача проверена ред по ред. Парадоксалното е че при едно и също решение в двата случая (само се променя Coins с Bitcoins). Имам два варянта на задачата. В първият ми дава 90/100 и в двете задачи грешка в тест 10. А най смешното е че вторият ми дава 100/100 в 9-та* задача и 0/100 във 2-ра задача. Моля да ми отговорите каво точно греша в тези задача. Вече си мисля и то не без основани, че условията на задачит нещо куцат или нарочно са с не дописани важни условия.
1.
function dungeonestDark(string) {
let monsterAndPower = string.toString();
let initialHelt = 100;
let initialCoints = 0;
let leter = "";
let power = "";
let monsterArr = [];
let powerArr = [];
let bestrRoom = 0;
let momentalPower = 0;
let momentalPowerUp = 0;
let bossKilled = false;
for (let i = 0; i <= monsterAndPower.length; i++) {
if (monsterAndPower.charCodeAt(i) >= 97 && monsterAndPower.charCodeAt(i) <= 122) {
leter += monsterAndPower[i];
} else if (monsterAndPower.charCodeAt(i) >= 48 && monsterAndPower.charCodeAt(i) <= 57) {
power += monsterAndPower[i];
} else if (monsterAndPower.charCodeAt(i) == 45) {
power += monsterAndPower[i];
} else if (monsterAndPower.charCodeAt(i) == 32) {
monsterArr.push(leter)
leter = "";
} else {
powerArr.push(power);
power = "";
}
}
for (let arrM in monsterArr) {
if (!bossKilled) {
bestrRoom++;
for (let i = arrM; i < powerArr.length; i++) {
if (monsterArr[i] == "potion") {
momentalPower = initialHelt;
initialHelt += Number(powerArr[i]);
if ((momentalPower + Number(powerArr[i])) <= 100) {
momentalPowerUp = Number(powerArr[i]);
} else {
initialHelt = 100;
momentalPowerUp = initialHelt - momentalPower;
}
console.log(`You healed for ${momentalPowerUp} hp.`);
console.log(`Current health: ${initialHelt} hp.`);
break;
} else if (monsterArr[i] == "chest") {
initialCoints += Number(powerArr[i]);
console.log(`You found ${powerArr[i]} coins.`);
break;
} else {
initialHelt -= Number(powerArr[i]);
if (initialHelt <= 0) {
console.log(`You died! Killed by ${monsterArr[i]}.`);
console.log(`Best room: ${bestrRoom}`);
bossKilled = true;
break;
} else {
console.log(`You slayed ${monsterArr[i]}.`);
break;
}
}
}
}
}
if (!bossKilled) {
console.log("You've made it!");
console.log(`Coins: ${initialCoints}`);
console.log(`Health: ${initialHelt}`);
}
}
2.
function dungeonDark(arr){
let dungen = arr[0].split('|');
let health = 100;
let coins = 0;
let counterRooms = 0;
let allCoins = 0;
for(let i = 0; i < dungen.length;i++){
let currentRoom = dungen[i].split(' ');
let command = currentRoom[0];
let num = Number(currentRoom[1]);
counterRooms++;
if(command === 'potion'){
if (health + num > 100) {
num = 100 - health;
health = 100;
} else
{
health += num;
}
console.log(`You healed for ${num} hp.`);
console.log(`Current health: ${health} hp.`);
}else if(command === 'chest'){
coins = Number(num);
allCoins += Number(num);
console.log(`You found ${coins} coins.`);
}else{
health -= Number(num);
if(health > 0){
console.log(`You slayed ${command}.`);
}else{
console.log(`You died! Killed by ${command}.`);
console.log(`Best room: ${counterRooms}`);
return;
}
}
}
console.log(`You've made it!`);
console.log(`Coins: ${allCoins}`);
console.log(`Health: ${health}`);
}
Благодаря много, но не искам твоето решени, а отговор на конкретен въпрос. Надявам се да не те обиждам с отговора и ако е така се извинявам предварително за това. Въпроса ми е къде бъркам аз, а не как се справяш ти. Също така утре ще питам и нещо друго пак по същата тема, с неяснота в условията на задачите, а и всъщтност защо са на Английски език? В реалният живот когато получавам задание има кой да попитам при неяснота, въпреки, че с Африканският английски ми е малко трудно. Не съм сигурен в това, че заданието е правилно имайки в предвид кой английски се ползва (UK, US, Indian, Irish or.....). В същтност моя Английски не е от най-добрите и аз мога да съм допуснал грешка за което се извинявам също, но идеята на конкретният въпрос е какво точно аз не съм разбрал?