首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript中的“超级爽4游戏”

Javascript中的“超级爽4游戏”
EN

Stack Overflow用户
提问于 2016-02-09 20:44:33
回答 1查看 599关注 0票数 0

我是javascript的初学者,我正在尝试制作“爽爽4”游戏。

然后,我在游戏板上创建了两个功能:一个是使用3var: raw、coloumn和player来放置玩家的挂钩(set)。

第二个剧本:我给了一个列,它应该找到第一条自由线。

但在我看来它不起作用。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
        <title>Mon Jeu JSV</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <div id="plateforme">.</div>
        <script src="javascript.js"></script>
    </body>
</html>

CSS:

代码语言:javascript
复制
#plateforme table td {
    width:50px;
    height:50px;
    border-style:solid;
    border-color:blue;
    border-radius: 100px;
    background-color:white;

}
#plateforme table{
    background-color:blue;
}

#plateforme .joueur2{
    background-color:yellow;
}
#plateforme .joueur1{
    background-color:red;
}

JS

代码语言:javascript
复制
var col=6;
var lin=7;
var plateforme= document.querySelector('#plateforme');
var table= document.createElement("TABLE")
var tableauBi = [];
var turn=1;
for ( var i=0;i<lin;i++){
    var tr= document.createElement("TR");
    tableauBi[i] = [];
    table.appendChild(tr);
    for ( var j=0;j<col;j++){
        var td= document.createElement("TD");
        tr.appendChild(td);
        tableauBi[i][j]=td;
    }
}
plateforme.appendChild(table);
function set (row,column,player){
    var elt = tableauBi[row][column];
    elt.className = 'joueur'+ player;
    this.turn=3 - this.turn;
}
function play (column){
        var ligne;
    for ( var i=this.lin;i>0;i--){
        if (!this.tableauBi[i][column].className){//case vide
            ligne=i;
            break;
        }

    }
       this.set (ligne,column,this.turn);
}
play(6);

当我使用play(6):通常第6列的第一个木质素会被着色。但这里不..。

JSFiddle

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 21:23:43

我根本没有优化过您的代码,但是给您!

您有一堆范围错误,您使用的是“this”,而我必须将它们全部删除。当在函数内部时,“这”指的是该函数的作用域,因此执行this.ligne将不会访问当前函数之外的“ligne”变量。

另外,要小心数组索引!如果有6行,就意味着索引从0到5!当然,您可以使用1到6,但是在访问列表中的项时要小心。

代码语言:javascript
复制
var col = 6;
var lin = 7;
var plateforme = document.querySelector('#plateforme');
var table = document.createElement("TABLE")
var tableauBi = [];
var turn = 1;
for (var i = 0; i < lin; i++) {
  var tr = document.createElement("TR");
  tableauBi[i] = [];
  table.appendChild(tr);
  for (var j = 0; j < col; j++) {
    var td = document.createElement("TD");
    tr.appendChild(td);
    tableauBi[i][j] = td;
  }
}
plateforme.appendChild(table);

function set(row, column, player) {
  var elt = tableauBi[row][column];
  elt.className = 'a joueur' + player;
  turn = 3 - turn;
}

function play(column) {
  var ligne;
  for (var i = lin-1; i >= 0; i--) {         // CAREFUL HERE, you were going out of bounds
    if (!tableauBi[i][column].className) { //case vide
      ligne = i;
      break;
    }

  }

  set(ligne, column, turn);
}
play(5); 

小提琴

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

https://stackoverflow.com/questions/35301814

复制
相关文章

相似问题

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