Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数if语句_Javascript_Html_Function_Event Listener - Fatal编程技术网

Javascript函数if语句

Javascript函数if语句,javascript,html,function,event-listener,Javascript,Html,Function,Event Listener,我在javascript上做一个骰子游戏,你打赌结果是奇数还是偶数,当你按下按钮时,骰子会滚动,它会显示结果是奇数还是偶数。我唯一的问题是,当你赌偶数,你得到一个奇数,它不会记录为一个损失,或者如果你赌偶数,得到偶数,它不会记录为一个胜利。总而言之,我不知道为什么它不记录球员的得分。非常感谢您的帮助,代码也在下面 var得分=0; var损失=0; document.getElementById(“偶数”).addEventListener(“单击”,偶数检查); 函数检查(){ var d1

我在javascript上做一个骰子游戏,你打赌结果是奇数还是偶数,当你按下按钮时,骰子会滚动,它会显示结果是奇数还是偶数。我唯一的问题是,当你赌偶数,你得到一个奇数,它不会记录为一个损失,或者如果你赌偶数,得到偶数,它不会记录为一个胜利。总而言之,我不知道为什么它不记录球员的得分。非常感谢您的帮助,代码也在下面

var得分=0;
var损失=0;
document.getElementById(“偶数”).addEventListener(“单击”,偶数检查);
函数检查(){
var d1=数学地板(数学随机()*6)+1;
var d2=数学地板(数学随机()*6)+1;
var d11=parseInt(d1);
var d22=parseInt(d2);
变量d33=parseInt(d11+d22);
die1.innerHTML=“掷骰子1:”+d1;
die2.innerHTML=“掷骰子2:”+d2;
sum.innerHTML=“总和:”+d33;
如果(d33%2==0&&偶数点选){
var得分=得分+1;
wins.innerHTML=“wins:”+分数;
loss.innerHTMl=“损失:”+损失;
}
如果(d33%2==1&&偶数点选){
var损失=损失+1;
wins.innerHTML=“wins:”+分数;
loss.innerHTMl=“损失:”+损失;
}
}
document.getElementById(“Odd”).addEventListener(“单击”,Oddcheck);
函数Oddcheck(){
var d1=数学地板(数学随机()*6)+1;
var d2=数学地板(数学随机()*6)+1;
var d11=parseInt(d1);
var d22=parseInt(d2);
变量d33=parseInt(d11+d22);
die1.innerHTML=“掷骰子1:”+d1;
die2.innerHTML=“掷骰子2:”+d2;
sum.innerHTML=“总和:”+d33;
如果(d33%2==0&&Odd.单击){
var损失=损失+1;
wins.innerHTML=“wins:”+分数;
loss.innerHTMl=“损失:”+损失;
}
如果(d33%2==1&&Odd.单击){
var得分=得分+1;
wins.innerHTML=“wins:”+分数;
loss.innerHTMl=“损失:”+损失;
}
}

简介
偶数
1比0
比分2:0
总数:0
胜利:0
损失:0
即使
古怪的

您的代码中有几个错误-

  • “偶数”和“奇数”是类而不是id,因此无法绑定它-用id属性替换class属性
  • 如果语句不起作用,您就需要检查if语句,因为您将代码分为奇数和偶数,您只需要检查num是奇数还是事件,而不是单击了哪个按钮-将其从语句中删除
  • 您的代码无法识别用于赢和输的html元素,因此我使用AddGetElemntById处理它
  • 您对全局变量进行了评分并丢失了它们,但是您重新声明了它们,因此没有得到正确的值。我从函数中的变量中删除了var声明
  • 最重要的是,我建议您使用一个函数来获取参数,而不是使用两个函数来处理每种情况
  • 尝试下列方法:

    <h1><img src="dice.png" alt="dice" width="50" height="50">
        EVEN ODDS<img src="dice.png" alt="dice" width="50" height="50"> <h1><img src="dice.png" alt="dice" width="50" height="50">
        EVEN ODDS<img src="dice.png" alt="dice" width="50" height="50"> </h1>
    <div id="die1" class="dice"> Dice1 :0</div>
    <div id="die2" class="dice"> Dice2 :0</div>
    <div id="sum" class="dicesum"> Sum :0</div>
    <div id = "wins" class="score"> Wins :0</div>
    <div id = "losses" class="lose"> Losses :0</div>
    <button type="button" onclick="clicked(this.name)" name="even">Even</button>
    <button type="button" onclick="clicked(this.name)" name="odd">ODD</button>
    
     <script>
      let score = 0;
      let lose = 0;
      const losses = document.getElementById("losses");
      const wins = document.getElementById("wins");
      function clicked(name){
        var d1 = Math.floor(Math.random() * 6) + 1;
        var d2 = Math.floor(Math.random() * 6) + 1;
        var d11 = parseInt(d1);
        var d22 = parseInt(d2);
        var d33 = parseInt(d11 + d22);
                const result = d33 % 2 == 0 ? 'even' : 'odd';
        die1.innerHTML = "Dice 1 rolled: " + d1;
        die2.innerHTML = "Dice 2 rolled: " + d2;
        sum.innerHTML = " Total Sum: " + d33;
        if( name === result) {
            score++;
          } else {
            lose++
        }
        wins.innerHTML = " Wins : " + score;
        losses.innerHTML = " Losses : " + lose;
      }
    </script>
    
    
    偶数
    偶数
    1比0
    比分2:0
    总数:0
    胜利:0
    损失:0
    即使
    古怪的
    分数=0;
    让失去=0;
    常量损失=document.getElementById(“损失”);
    const wins=document.getElementById(“wins”);
    单击的函数(名称){
    var d1=数学地板(数学随机()*6)+1;
    var d2=数学地板(数学随机()*6)+1;
    var d11=parseInt(d1);
    var d22=parseInt(d2);
    变量d33=parseInt(d11+d22);
    常量结果=d33%2==0?'偶数':'奇数';
    die1.innerHTML=“掷骰子1:”+d1;
    die2.innerHTML=“掷骰子2:”+d2;
    sum.innerHTML=“总和:”+d33;
    如果(名称===结果){
    分数++;
    }否则{
    失去++
    }
    wins.innerHTML=“wins:”+分数;
    loss.innerHTML=“损失:”+损失;
    }
    
    如果您遇到一些小的逻辑错误,我建议您利用JavaScript,您可以只使用一个“main”模块(我们称之为
    play()
    )来处理游戏的逻辑

    此外,如果您没有使用您定义的DOM引用,那么最好删除它们。代码越少越好。(大部分时间)

    请看以下更正:

    什么改变了
    • 添加了一个“log”div,以便玩家可以看到正在发生的事情
    • 删除了未使用的DOM引用
    • 添加了
      play()
      函数,可处理游戏中的所有内容
    • 添加了
      rollDice()
      函数,该函数可以滚动所需的骰子数量
    就是这样,更少的代码,更多的可读性,更有效。测试一下:

    let-won=0;
    让lost=0;
    函数rollDice(amount=1){//一个模块,用于滚动所需的数量骰子
    让骰子=[];
    
    对于(设c=0;c考虑编写接收输入并生成输出的函数)-

    const roll=(边=6)=>
    Math.floor(Math.random()*边)+1
    const isWin=(总和,下注)=>
    (和1)==下注
    常量更新=(下注,状态)=>
    {const d1=roll()
    常数d2=滚动()
    常数和=d1+d2
    返回Object.assign
    (说明
    ,{d1,d2,sum}
    ,isWin(总和,赌注)
    ?{win:state.win+1}
    :{loss:state.loss+1}
    )
    }
    常量呈现=(形式、状态)=>
    对象
    .条目(状态)
    .forEach(([k,v])=>form[k].value=v)
    常量播放=(形式、赌注、状态)=>
    提供
    (表格
    ,更新(下注,状态)
    )
    //初始化
    恒定状态=
    {d1:0,d2:0,和:0,赢:0,输:0}
    常量f=document.querySelector(“表单”)
    f、 evenbet.addEventListener(“单击”,事件=>播放(f,0,状态))
    f、 addEventListener(“单击”,事件=>播放(f,1,状态))
    渲染(f,状态)
    
    骰子:
    总和:

    赢: 损失:
    打赌: 古怪的 即使
    parseInt()
    的调用是毫无意义的。数字已经是整数了。还有,你期望
    偶数是什么?单击
    奇数。单击
    的意思是什么?@point好吧,当我使用parseInt时它开始工作(当我没有打开parse int时它没有显示和数),我把它与。单击()命令,我改了