1
텔넷 서버에서 실행되는 Rock, Paper, Scissors 프로그램을 만들려고합니다. 그것은 "바위", "종이"또는 "가위"라는 단어를 입력하는 것을 허용하지 않습니다.Node.js : telnet "Rock, Paper, Scissors"프로그램이 작동하지 않습니다.
- 첫 번째 CPUhand는 정의되지 않은 것으로 표시되며 내 if 문의 옵션 중 하나를 설정하지 않습니다.
- 둘째, 명령 프롬프트에서 단일 문자를 입력 할 때마다 "잘못된, 다시 시도하십시오!"라는 메시지가 나타납니다. else 문을 건너 뛰고 다음 줄로 건너 뜁니다.
아무에게도 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";
}
\t connection.write("Enter: Rock, Paper, or Scissors!\r\n");
\t connection.on('data', function(chunk) { //collect data from user
\t \t
\t \t let USERhand = chunk.toString();
\t \t
\t \t if(CPUhand === "Rock" && USERhand === "Scissors" || USERhand === "Rock" && CPUhand === "Scissors"){
\t \t \t connection.write("Rock beats Scissors!\r\n");
\t \t }
\t \t else if(CPUhand === "Paper" && USERhand === "Rock" || USERhand === "Paper" && CPUhand === "Rock"){
\t \t \t connection.write("Paper beats Rock!\r\n");
\t \t }
\t \t else if(CPUhand === "Scissors" && USERhand === "Paper" || USERhand === "Scissors" && CPUhand === "Paper"){
\t \t \t connection.write("Scissors beats Paper!\r\n");
\t \t }
else if(CPUhand === USERhand){
connection.write("Draw!\r\n");
}
\t \t else{
\t \t \t connection.write("Invalid! Try Again! \r\n");
\t \t } \t \t
\t \t
\t });
}); 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;
}
'CSTE 연구진 ('데이터') '트리거 될 때마다 프로그램은 모든 데이터를 수신하며, 사용자가 무언가를 입력하면 일반적으로 한 번에 하나의 문자가됩니다. 개행 문자를받을 때까지 변수에 데이터를 수집해야합니다. 다른 문제는'='대신에'=='를 사용하여 값을 할당하려고하기 때문입니다. – JJJ