JavaScript中的Tris游戏

时间:2017-05-20 17:55:27

标签: javascript function

我刚开始用JS编写代码,所以我尝试了一些经典练习。 现在我正在做一个简单的 tris 游戏,但是我在这里发布的胜利检查功能有些问题。有什么想法吗?



function controllo() {
  var con = 0;

  if (tab['usx'] == tab['uc'] == tab['udx'] == 'X' || 
      tab['usx'] == tab['uc'] == tab['udx'] == 'O' ) //Orizzontali
    con = 1;
  else if (tab['csx'] == tab['cc'] == tab['cdx'] == 'X' ||
           tab['csx'] == tab['cc'] == tab['cdx'] == 'O')
    con = 1;
  else if (tab['dsx'] == tab['dc'] == tab['ddx'] == 'X' || 
           tab['dsx'] == tab['dc'] == tab['ddx'] == 'O')
    con = 1;
  else if (tab['usx'] == tab['cc'] == tab['ddx'] == "X" || 
           tab['usx'] == tab['cc'] == tab['ddx'] == "O") //Diagonali
    con = 1;
  else if (tab['udx'] == tab['cc'] == tab['dsx'] == 'X' || 
           tab['udx'] == tab['cc'] == tab['dsx'] == 'O')
    con = 1;
  else if (tab['udx'] == tab['cdx'] == tab['ddx'] == 'X' || 
           tab['udx'] == tab['cdx'] == tab['ddx'] == 'O') //Verticali
    con = 1;
  else if (tab['uc'] == tab['cc'] == tab['dc'] == 'X' || 
           tab['uc'] == tab['cc'] == tab['dc'] == 'O')
    con = 1;
  else if (tab['udx'] == tab['cdx'] == tab['ddx'] == 'X' || 
           tab['udx'] == tab['cdx'] == tab['ddx'] == 'O')
    con = 1;

  return (con);
}




tab是一个全局数组,con是一个本地标志。 " X"和" O"意味着2个不同的球员。问题是所有条件总是错误的。

1 个答案:

答案 0 :(得分:0)

参见this implementation 首先,你用可能的胜利创造一个常数

var LINES = [
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 8],
    [0, 3, 6],
    [1, 4, 7],
    [2, 5, 8],
    [0, 4, 8],
    [2, 4, 6]
];

你可以在实现中使用它来计算X或O,如果有三个则赢了。剩下的实现我留给你。就像this