为什么我的剪刀布游戏条件不起作用?

时间:2018-11-29 18:12:59

标签: jquery conditional-statements

因此,这是我存储变量的信息,供计算机选择和玩家用于剪刀石头布游戏的选择:bot and user choice,站点的外观如下:the site。因此,我这样做的目的是使函数能够考虑这些条件并警告事件发生(例如:“您赢”或“您输”)。但是,它忽略了前两个条件,并直接转到最后一个“ 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);
  }
}); 

1 个答案:

答案 0 :(得分:0)

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

                   岩石                    纸                    剪刀                     

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