首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tac Tac Toe重置

Tac Tac Toe重置
EN

Stack Overflow用户
提问于 2020-07-03 03:47:54
回答 1查看 136关注 0票数 0

如何让Tic-Tac-Toe板在不创建另一个板的情况下复位?以下是代码示例:

代码语言:javascript
复制
function makeBoard(boardElement) {
  let player1 = 0
  let gameIsRunning = true;
  let xPlayer = true;

  for (let i = 0; i < 3; i++) {
    var rowElement = document.createElement("div");
    rowElement.className = "row";
    if (!boardArray[i]) {
      boardArray[i] = [];
    }
  }
}
代码语言:javascript
复制
<div>
  <div>
    <div class="col-8">
      <button onclick="makeBoard(board)" id="resetButton" class="btn btn-primary btn-lg">Reset Game</button>
    </div>
    <div class="col-4"></div>
  </div>
</div>

EN

回答 1

Stack Overflow用户

发布于 2020-07-03 04:43:50

您可以使用如下内容重置所有单元格的文本内容:

代码语言:javascript
复制
cells.forEach(cell => {
  cell.textContent = ''
})

演示

代码语言:javascript
复制
class TotTacToe {
  constructor(target, size) {
    if (typeof target === 'string') {
      target = document.querySelector(target)
    }
    this.players = [ 'O', 'X' ]
    this.currentPlayer = 0
    this.reference = target
    this.size = size
    this.initialize()
  }
  
  initialize() {
    for (let row = 0; row < this.size; row++) {
      let rowEl = document.createElement('DIV')
      rowEl.classList.add('row')
      for (let col = 0; col < this.size; col++) {
        let cell = document.createElement('DIV')
        cell.classList.add('col-sm')
        cell.addEventListener('click', e => {
          this.click(e.target)
        })
        rowEl.appendChild(cell)
      }
      this.reference.appendChild(rowEl)
    }
    
    document.querySelector('.reset').addEventListener('click', e => {
      this.reset()
    })
  }
  
  click(cell) {
    if (cell.textContent == '') {
      cell.textContent = this.players[this.currentPlayer]
      this.currentPlayer = (this.currentPlayer + 1) % this.players.length
    }
  }
  
  reset() {
    [...this.reference.querySelectorAll('.col-sm')].forEach(col => {
      col.textContent = ''
    })
    this.currentPlayer = 0
  }
}

new TotTacToe('.container', 3)
代码语言:javascript
复制
.container {
  width: 200px !important;
}

.container .row > .col,
.container .row > [class^=col-] {
  padding-top: 1rem;
  padding-bottom: 1rem;
  background-color: LightGrey;
  border: thin solid Grey;
  text-align: center;
  cursor: pointer;
  min-height: 4em;
}

.reset {
  position: fixed !important;
  top: 1em;
  right: 2em;
}
代码语言:javascript
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.0.0-alpha1/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.0.0-alpha1/css/bootstrap-grid.min.css" rel="stylesheet"/>
<div class="container"></div>
<div>
  <button type="button" class="btn btn-primary reset">Reset</button>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62703999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档