所以我试图创建这个Rock,Paper,Scissors程序在telnet服务器上运行。除非它不允许我输入单词" Rock"," Paper"或"剪刀"。
是否有人能够弄清楚为什么我的CPUhand的if语句不起作用或为什么我不能在命令提示符下输入多个字符?
"use strict";
const
net = require('net'),
server = net.createServer(function(connection) { //create server
let randomNum = randomNumber(1, 3);
let CPUhand
if(randomNum == 1){
CPUhand == "Rock";
} else if(randomNum == 2){
CPUhand == "Paper";
} else if(randomNum == 3){
CPUhand == "Scissors";
}
connection.write("Enter: Rock, Paper, or Scissors!\r\n");
connection.on('data', function(chunk) { //collect data from user
let USERhand = chunk.toString();
if(CPUhand === "Rock" && USERhand === "Scissors" || USERhand === "Rock" && CPUhand === "Scissors"){
connection.write("Rock beats Scissors!\r\n");
}
else if(CPUhand === "Paper" && USERhand === "Rock" || USERhand === "Paper" && CPUhand === "Rock"){
connection.write("Paper beats Rock!\r\n");
}
else if(CPUhand === "Scissors" && USERhand === "Paper" || USERhand === "Scissors" && CPUhand === "Paper"){
connection.write("Scissors beats Paper!\r\n");
}
else if(CPUhand === USERhand){
connection.write("Draw!\r\n");
}
else{
connection.write("Invalid! Try Again! \r\n");
}
});
}); server.listen(5432); //bind port
function randomNumber(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

答案 0 :(得分:-1)
1)块中的错字:
if(randomNum == 1){
CPUhand == "Rock";
} else ...
应该是:
if(randomNum == 1){
CPUhand = "Rock";
} else ...
2)在用户输入中,您还有换行符号:
let USERhand = chunk.toString();
替换为:
let USERhand = chunk.toString().trim();