一段简单的JS代码,我却一次次收到同样的结果,我想,我可能是做了一个逻辑错误。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一段简单的JS代码,我却一次次收到同样的结果,我想,我可能是做了一个逻辑错误。相关的知识,希望对你有一定的参考价值。
我正在自学JS,想自己解决一个挑战,但我觉得我的代码逻辑是错误的,因为我一直得到同样的结果return,一遍又一遍,就是'There's a tie!'。
关于这个任务。
可能的结果是:
熊攻击人类,人类解除枪械,枪射杀熊,如果平局,那么游戏以平局结束。
挑战:我们的代码将把游戏分为四个部分,分别是:熊击倒人.人解除枪.枪射杀熊.如果出现平局,则游戏以平局结束。我们的代码将把游戏分为四个部分:
获取用户的选择.获取电脑的选择.比较两个选择并确定一个赢家.启动程序并显示结果.
//Getting the user's choice.
let options = ['bear','human','gun'];
function getUsersChoice (){
return usersChoice = options[Math.floor(Math.random()*3)];
}
getUsersChoice();
// Getting computer's choice.
function getComputersChoice (){
return computersChoice = options[Math.floor(Math.random()*3)];
}
getComputersChoice();
//Compare the two choices and determine a winner.
function determineWinner (usersChoice , computersChoice){
if(usersChoice === computersChoice){
return 'There\'s a tie!';
}
if( usersChoice === 'bear'){
if(computersChoice === human){
return 'bear mauls human.';
}else {
return 'gun shoots bear.';
}
}
if (usersChoice === 'human'){
if(computersChoice === 'gun'){
return 'human disarms gun.';
}else {
return ' bear mauls human.';
}
}
if (usersChoice === 'gun'){
if(computersChoice === 'bear'){
return 'gun shoots bear.';
}else {
return 'human disarms gun.';
}
}
}
determineWinner();
答案
你需要交出选择。
function getUsersChoice() {
return options[Math.floor(Math.random() * 3)];
}
function getComputersChoice() {
return options[Math.floor(Math.random() * 3)];
}
function determineWinner(usersChoice, computersChoice) {
if (usersChoice === computersChoice) return 'There\'s a tie!';
if (usersChoice === 'bear') {
if (computersChoice === 'human') return 'bear mauls human.';
return 'gun shoots bear.';
}
if (usersChoice === 'human') {
if (computersChoice === 'gun') return 'human disarms gun.';
return 'bear mauls human.';
}
if (usersChoice === 'gun') {
if (computersChoice === 'bear') return 'gun shoots bear.';
return 'human disarms gun.';
}
}
let options = ['bear', 'human', 'gun'];
console.log(determineWinner(getUsersChoice(), getComputersChoice()));
另一答案
试试这个
let options = ['bear','human','gun'];
function getUsersChoice (){
return options[Math.floor(Math.random()*3)];
}
var userChoice = getUsersChoice();
// Getting computer's choice.
function getComputersChoice (){
return options[Math.floor(Math.random()*3)];
}
var computerChoice = getComputersChoice();
//Compare the two choices and determine a winner.
function determineWinner (usersChoice , computersChoice){
if(usersChoice === computersChoice){
return 'There\'s a tie!';
}
if( usersChoice === 'bear'){
if(computersChoice === human){
return 'bear mauls human.';
}else {
return 'gun shoots bear.';
}
}
if (usersChoice === 'human'){
if(computersChoice === 'gun'){
return 'human disarms gun.';
}else {
return ' bear mauls human.';
}
}
if (usersChoice === 'gun'){
if(computersChoice === 'bear'){
return 'gun shoots bear.';
}else {
return 'human disarms gun.';
}
}
}
determineWinner();
以上是关于一段简单的JS代码,我却一次次收到同样的结果,我想,我可能是做了一个逻辑错误。的主要内容,如果未能解决你的问题,请参考以下文章
面试字节跳动,收到offer后我却拒绝了 ,给面试人的一些忠告!