Node.js:telnet" Rock,Paper,Scissors"程序无效

时间:2017-02-25 21:19:08

标签: javascript node.js telnet

所以我试图创建这个Rock,Paper,Scissors程序在telnet服务器上运行。除非它不允许我输入单词" Rock"," Paper"或"剪刀"。

  1. 第一个CPUhand显示为未定义,并且未设置为if语句中的某个选项。
  2. 每当我在命令提示符中输入单个字符时,它会给我我的"无效,再试一次!" else语句并跳到下一行。
  3. 是否有人能够弄清楚为什么我的CPUhand的if语句不起作用或为什么我不能在命令提示符下输入多个字符?

    Screenshot1 Screenshot2

    
    
    "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;
        }
    
    
    

1 个答案:

答案 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();