Итак, это небольшая терминальная игра, ножницы из каменной бумаги, и мне нужна помощь в написании оставшегося кода, чтобы он мог пройти мои тесты узлов. Я смог написать код и ввести решение для hand1 и hand2 и получить результат, показывающий, кто победил, но он не пройдет тесты узлов, когда я их запускаю.
Тест узлов обнаруживает "tie "как правильно, но не определяет выигранные руки или ввод скраба как правильный, но все это работает, когда я использую его в терминале. Вот изображение того, что говорит тест узла
Код, который нужно переписать, находится внутри функции rockPaperScissors (hand1, hand2) ниже
'use strict';
const assert = require('assert');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function rockPaperScissors(hand1, hand2) {
if (hand1 === hand2) {
return "It's a tie!";
} else if (hand1 === 'rock') {
if (hand2 === 'paper') {
return "Hand two wins!";
} else if (hand2 === 'scissors') {
return "Hand one wins!";
}
}
if (hand1 === 'paper') {
if (hand2 === 'rock') {
return "Hand one wins!";
} else if (hand2 === 'scissors') {
return "Hand two wins!";
}
}
if (hand1 === 'scissors') {
if (hand2 === 'paper') {
return "Hand one wins!";
} else if (hand2 === 'rock') {
return "Hand two wins!";
}
}
}
function getPrompt() {
rl.question('hand1: ', (answer1) => {
rl.question('hand2: ', (answer2) => {
console.log( rockPaperScissors(answer1, answer2) );
getPrompt();
});
});
}
// Tests
if (typeof describe === 'function') {
describe('#rockPaperScissors()', () => {
it('should detect a tie', () => {
assert.equal(rockPaperScissors('rock', 'rock'), "It's a tie!");
assert.equal(rockPaperScissors('paper', 'paper'), "It's a tie!");
assert.equal(rockPaperScissors('scissors', 'scissors'), "It's a tie!");
});
it('should detect which hand won', () => {
assert.equal(rockPaperScissors('rock', 'paper'), "Hand two wins!");
assert.equal(rockPaperScissors('paper', 'scissors'), "Hand two wins!");
assert.equal(rockPaperScissors('rock', 'scissors'), "Hand one wins!");
});
it('should scrub input to ensure lowercase with "trim"ed whitepace', () => {
assert.equal(rockPaperScissors('rOcK', ' paper '), "Hand two wins!");
assert.equal(rockPaperScissors('Paper', 'SCISSORS'), "Hand two wins!");
assert.equal(rockPaperScissors('rock ', 'sCiSsOrs'), "Hand one wins!");
});
});
} else {
getPrompt();
}