RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 881396
Accepted
Steg_Brind
Steg_Brind
Asked:2020-09-15 00:12:09 +0000 UTC2020-09-15 00:12:09 +0000 UTC 2020-09-15 00:12:09 +0000 UTC

循环工作不正常。JS

  • 772

var flag = 1;
//var w_f = document.getElementById("width_of_field").value;
//var h_f = document.getElementById("height_of_field").value;
var w_f = 3;
var h_f = 3;
var acr1 = w_f * h_f;
function gameover(fr, sec, thr) {
  $("#go").css('display', 'block');
  $("#" + fr).css('background-color', 'red');
  $("#" + sec).css('background-color', 'red');
  $("#" + thr).css('background-color', 'red')
}

function case1() {
  var attemps_of_one_string = Math.floor(w_f / 3 * 2);
  //var attemps = 0;
  for (var d = 0; d < acr1; d++) {
    /*if (attemps === attemps_of_one_string) {
      d = d + 2;
      attemps = 0;
    }
    attemps++;*/
    var first = document.getElementById(String(d + 1)).innerHTML;
    var second = document.getElementById(String(d + 2)).innerHTML;
    var third = document.getElementById(String(d + 3)).innerHTML;
    if (first == second && first == third && first != "&nbsp;") {
      if (first == "X") {
        document.getElementById("live").innerHTML = "КРЕСТИКS WIN";
        gameover(d + 1, d + 2, d + 3)
      } else {
        document.getElementById("live").innerHTML = "НОЛИКS WIN";
        gameover(d + 1, d + 2, d + 3)
      }
    }
  }
}

function case2() {
  for (var k = 0; k < acr1; k++) {
    var first = document.getElementById(String(k + 1)).innerHTML;
    var second = document.getElementById(String(k + w_f + 1)).innerHTML;
    var third = document.getElementById(String(k + (w_f * 2) + 1)).innerHTML;
    if (first == second && first == third && first != "&nbsp;") {
      if (first == "X") {
        document.getElementById("live").innerHTML = "КРЕСТИКS WIN";
        gameover(k + 1, k + w_f + 1, k + (w_f * 2) + 1)
      } else {
        document.getElementById("live").innerHTML = "НОЛИКS WIN";
        gameover(k + 1, k + w_f + 1, k + (w_f * 2) + 1)
      }
    }
  }
}

function x_o(num) {
  if (flag === 1) {
    flag = 0;
    document.getElementById(num).innerHTML = "X";
    document.getElementById("live").innerHTML = "<b>НОЛИК</b>";
    $("#" + num).attr('disabled', "disabled");
    case1();
    case2()
  } else {
    flag = 1;
    document.getElementById(num).innerHTML = "O";
    document.getElementById("live").innerHTML = "<b>КРЕСТИК</b>";
    $("#" + num).attr('disabled', "disabled");
    case1();
    case2()
  }
}
html,
body {
  margin: 0;
  padding: 0;
  background: #878787
}

.container {
  max-width: 423px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  text-align: center
}

.sqr {
  text-align: center;
  line-height: 200%;
  background-color: transparent;
  border: black solid 0.5px;
  width: 33.33333333333333%;
  font-family: "arial";
  font-size: 10vh
}

.sqr:disabled {
  color: black
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>КРЕСТИК И НОЛИК</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

  <body>
    <div class="container">
      <button class="sqr" id="1" onclick="x_o(1)">&nbsp;</button>
      <button class="sqr" id="2" onclick="x_o(2)">&nbsp;</button>
      <button class="sqr" id="3" onclick="x_o(3)">&nbsp;</button>
      <button class="sqr" id="4" onclick="x_o(4)">&nbsp;</button>
      <button class="sqr" id="5" onclick="x_o(5)">&nbsp;</button>
      <button class="sqr" id="6" onclick="x_o(6)">&nbsp;</button>
      <button class="sqr" id="7" onclick="x_o(7)">&nbsp;</button>
      <button class="sqr" id="8" onclick="x_o(8)">&nbsp;</button>
      <button class="sqr" id="9" onclick="x_o(9)">&nbsp;</button>
      <p id="live" style="display: block; margin-left: 43%"><b>КРЕСТИК</b></p>
      <p id="go" style="cursor: pointer; display: none; margin-top: 10%; font-family: 'arial'" onclick="$(this).hide(50), $('button').text('&#160').css('background-color', 'transparent').attr('disabled', false), $('#live').text('КРЕСТИК'), flag=1"><b>ПОПРОБОВАТЬ СНОВА</b></p>
    </div>
  </body </html>

我正在尝试创建一个三分球游戏。我第一次想做 3 对 3 场。然后让用户可以选择字段的宽度和高度。但现在不是这样。case1 函数(它计算水平边距并尝试选择获胜者)正常工作。case2 函数应该做同样的事情,只是垂直计算字段。所以case2根本行不通。不知道为什么

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    user176262
    2020-09-15T01:41:23Z2020-09-15T01:41:23Z

    对原始代码进行最少的更改:

    var flag = 1;
    //var w_f = document.getElementById("width_of_field").value;
    //var h_f = document.getElementById("height_of_field").value;
    var w_f = 3;
    var h_f = 3;
    var acr1 = w_f * h_f;
    
    function gameover(fr, sec, thr) {
      $("#go").css('display', 'block');
      $("#" + fr).css('background-color', 'red');
      $("#" + sec).css('background-color', 'red');
      $("#" + thr).css('background-color', 'red')
    }
    
    function case1() {
      for (var i = 1; i <= 3; i++) {
        var first = document.getElementById(i + "_1").innerHTML;
        var second = document.getElementById(i + "_2").innerHTML;
        var third = document.getElementById(i + "_3").innerHTML;
        if (first == second && first == third && first != "&nbsp;") {
          document.getElementById("live").innerHTML =
            (first == "X") ? "КРЕСТИКS WIN" : "НОЛИКS WIN";
          gameover(i + "_1", i + "_2", i + "_3");
          break;
        }
      }
    }
    
    function case2() {
      for (var j = 1; j <= 3; j++) {
        var first = document.getElementById("1_" + j).innerHTML;
        var second = document.getElementById("2_" + j).innerHTML;
        var third = document.getElementById("3_" + j).innerHTML;
        if (first == second && first == third && first != "&nbsp;") {
          document.getElementById("live").innerHTML =
            (first == "X") ? "КРЕСТИКS WIN" : "НОЛИКS WIN";
          gameover("1_" + j, "2_" + j, "3_" + j);
          break;
        }
      }
    }
    
    function x_o(num) {
      if (flag === 1) {
        flag = 0;
        document.getElementById(num).innerHTML = "X";
        document.getElementById("live").innerHTML = "<b>НОЛИК</b>";
        $("#" + num).attr('disabled', "disabled");
        case1();
        case2();
      } else {
        flag = 1;
        document.getElementById(num).innerHTML = "O";
        document.getElementById("live").innerHTML = "<b>КРЕСТИК</b>";
        $("#" + num).attr('disabled', "disabled");
        case1();
        case2();
      }
    }
    html,
    body {
      margin: 0;
      padding: 0;
      background: #878787
    }
    
    .container {
      max-width: 423px;
      width: 100%;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      text-align: center
    }
    
    .sqr {
      text-align: center;
      line-height: 200%;
      background-color: transparent;
      border: black solid 0.5px;
      width: 33.33333333333333%;
      font-family: "arial";
      font-size: 10vh
    }
    
    .sqr:disabled {
      color: black
    }
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>КРЕСТИК И НОЛИК</title>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    
      <body>
        <div class="container">
          <button class="sqr" id="1_1" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="1_2" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="1_3" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="2_1" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="2_2" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="2_3" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="3_1" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="3_2" onclick="x_o(this.id)">&nbsp;</button>
          <button class="sqr" id="3_3" onclick="x_o(this.id)">&nbsp;</button>
          <p id="live" style="display: block; margin-left: 43%"><b>КРЕСТИК</b></p>
          <p id="go" style="cursor: pointer; display: none; margin-top: 10%; font-family: 'arial'" onclick="$(this).hide(50), $('button').text('&#160').css('background-color', 'transparent').attr('disabled', false), $('#live').text('КРЕСТИК'), flag=1"><b>ПОПРОБОВАТЬ СНОВА</b></p>
        </div>
      </body </html>

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5