首页 > 解决方案 > 为什么我的石头剪刀布游戏条件不起作用?

问题描述

所以这就是我如何存储计算机选择的变量和玩家选择石头剪刀布游戏的方式:机器人和用户选择,这是网站的样子:网站. 所以,我这样做的目的是让函数考虑这些条件并提醒结果(例如:“你赢了”或“你输了”)。但是,它忽略了前两个条件并直接进入最后一个“else”,即使计算机选择的“oo”是例如摇滚而您的选择是纸,也会提醒游戏平局。现在,老实说,我不知道如何解决这个问题,因为它没有检测到我的条件错误,也没有说明变量是否存储错误,所以请帮助我解决这个问题,以及计算机选择时部分上方的所有部分, “oo”,并且存储的用户选择不是我做的,我正在使用这项工作(https://codepen.io/Re3ker/pen/VYBXBj)来改进我的格式(仅用于个人项目)

这是脚本的代码:

$(document).ready(function(){
  var users = [],
    shuffled = [],
    loadout = $("#loadout"),
    insert_times = 30,
    duration_time = 10000;
  $("#roll").click(function(){
    users = [];


    var lines = $('textarea').val().split('\n');
    if(lines.length < 2){
      $("#msgbox").slideToggle(100);
      setTimeout(function() {
        $("#msgbox").slideToggle(100);
      }, 3000);
      return false;
    }  
    for(var i = 0;i < lines.length;i++){
      if(lines[i].length > 0){
        users.push(lines[i]);
      }
    }
    $("#roll").attr("disabled",true);
    var scrollsize = 0,
    diff = 0;
    $(loadout).html("");
    $("#log").html("");
    loadout.css("left","100%");
    if(users.length < 10){
      insert_times = 20;
      duration_time = 5000;
    }else{
      insert_times = 10;
      duration_time = 10000;
    }
    for(var times = 0; times < insert_times;times++){
      shuffled = users;
      shuffled.shuffle();
      for(var i = 0;i < users.length;i++){
        loadout.append('<td><div class="roller"><div>'+shuffled[i]+'</div></div></td>');
        scrollsize = scrollsize + 192;
      }
    }


    diff = Math.round(scrollsize /2);
    diff = randomEx(diff - 300,diff + 300);
    $( "#loadout" ).animate({
      left: "-="+diff
    },  duration_time, function() {
      $("#roll").attr("disabled",false);
      $('#loadout').children('td').each(function () {
        var center = window.innerWidth / 2;
        if($(this).offset().left < center && $(this).offset().left + 185 > center){
          var userChoice=document.querySelector('input[name="one"]:checked').value;
          var oo = $(this).children().text();
          var a="rock";
          var b="paper";
          var c="scissors";

          if(((userChoice=="paper")&&(oo==a))||((userChoice=="rock")&&(oo==c))|| ((userChoice=="scissors")&&(oo==b))){
            alert("You wins! ");
          }else if(((userChoice=="rock")&&(oo==b)) || ((userChoice=="paper")&&(oo==c))|| ((userChoice=="scissors")&&(oo==a))){
            alert("you lose! ");
          }else{
            alert("A tie, PLAY AGAIN");
          }
          $("#log").append("The computer chose \n"+oo);
        }
      });
    });
  });
  Array.prototype.shuffle = function(){
    var counter = this.length, temp, index;
    while (counter > 0) {
      index = (Math.random() * counter--) | 0;
      temp = this[counter];
      this[counter] = this[index];
      this[index] = temp;
    }
  }
  function randomEx(min,max){
    return Math.floor(Math.random()*(max-min+1)+min);
  }
}); 

标签: jqueryconditional-statements

解决方案


Nvm,条件和变量存储正确,但我使用 textarea 作弊:

剪刀石头布

它从一开始就计算了“石头”、“纸”和“剪刀”之间的空间。所以我所要做的就是让它坚持开始,中间没有任何空间


推荐阅读