- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
HTML
<div class="container"> <-- div container -->
<div id="div1" onclick="canvasClicked(1);"></div>
<div id="div2" onclick="canvasClicked(2);"></div>
<div id="div3" onclick="canvasClicked(3);"></div>
<div id="div4" onclick="canvasClicked(4);"></div>
<div id="div5" onclick="canvasClicked(5);"></div>
<div id="div6" onclick="canvasClicked(6);"></div>
<div id="div7" onclick="canvasClicked(7);"></div>
<div id="div8" onclick="canvasClicked(8);"></div>
<div id="div9" onclick="canvasClicked(9);"></div>
</div> <-- div container end -->
CSS
.container{ /*some css*/
border: 2px solid red;
width: 400px;
height: 400px;
margin: 0 auto;
margin-top: 10%;
}
.container div{
float: left;
height: 132px;
width: 131.3px;
border: 1px solid black;
}
JavaScript
var painted; //global variables
var content;
var winningCombinations;
var theCanvas;
var c;
var cxt;
var w;
var y;
var turn = 0;
var squaresFilled = 0; //global variables end
window.onload = function(){ //instantiating variables
painted = new Array(); //to check if the canvas contains something already
content = new Array(); //to see what the canvas contains 'X' or 'O'
winningCombinations = [[1,2,3],[4,5,6],[7,8,9],[1,4,7],[2,5,8],[3,6,9],
[1,5,9],[3,5,7]]; //all possible combinations :P
for(var i=0; i<=8; i++){
painted[i] = false;
content[i]=false;
}
}
function canvasClicked(number){
theCanvas = "div" + number; //takes the div Id from html
c = document.getElementById(theCanvas);
if(painted[number-1]==false){
if(turn%2==0){ //use X here
c.innerHTML = '<img src="cross image" alt="x" width=100%
height=100%>';
content[number-1] = 'X'; //storing value in content array
}else{ // user O here
c.innerHTML = '<img src=" O image" height="100%"
width="100%" alt="O">';
content[number-1] = 'O'; //storing value in content array
}
}
else{
alert('This block is already occupied, try another block');
turn--;
squaresFilled--;
}
turn++;
painted[number-1]= true;
squaresFilled++;
checkForWinner(content[number-1]);
if(squaresFilled == 9){
alert('It is a TIE');
playAgain();
}
}
function checkForWinner(symbol){ // This functions seems to be the problem
for(var a = 0; a < winningCombinations.length; a++){
if(content[winningCombinations[a][0]]==symbol &&
content[winningCombinations[a][1]]==symbol && content[winningCombinations[a]
[2]]==symbol){
console.log(symbol + ' won!!');
}
}
}
function playAgain(){ // just another function to reset the game
y=confirm("PLAY AGAIN?");
if(y==true){
location.reload(true);
}else{
alert('Good Bye Then!!');
}
}
运行正常,但结果不是预期的。有时它会随机地使任何人获胜(我猜),我似乎找不到错误,我也使用了调试器,但我只是找不到问题......任何帮助将不胜感激。谢谢
最佳答案
在函数checkForWinner
中更改:
if(content[winningCombinations[a][0]]==symbol &&
content[winningCombinations[a][1]]==symbol &&
content[winningCombinations[a][2]]==symbol){
至:
if(content[winningCombinations[a][0]-1]==symbol &&
content[winningCombinations[a][1]-1]==symbol &&
content[winningCombinations[a][2]-1]==symbol){
如果您从 0 而不是 1 开始对所有内容进行编号,事情会变得更容易。然后您就不需要所有这些 -1
。
关于javascript - 无法让 2 人井字棋游戏运行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44985380/
我是一个学习Java编程的初学者,我正在玩井字棋游戏。 当我完成游戏后,我无法继续玩游戏,因为程序将退出。我应该在这段代码中添加什么。由于我没有使用paint方法,所以无法使用repaint()。 i
我正在为一项作业编写一个井字棋游戏。它需要使用面向对象的编程,并且必须相对智能——它需要阻止玩家的成功。我在这方面遇到了很多麻烦。 我的麻烦来 self 的 rowabouttowin 方法:我做了一
本文实例为大家分享了C语言实现三子棋(井字棋)小游戏的具体代码,供大家参考,具体内容如下 推荐阅读顺序(不建议跳过) 先看实现之后的界面 —— 然后看分析程序要实现的步骤 —— 之后在看翻到te
本文实例为大家分享了C语言实现三子棋算法,供大家参考,具体内容如下 游戏文件主干(test.c): ?
我正在用 javascript/jquery 制作一个简单的井字游戏,但我不知道如何检查是否有人赢了。这是游戏场:
我尝试创建 Tic Tac Toe,我能够填满我的棋盘,并且能够检查行和列以确定谁获胜。然而,我需要一些帮助来检查对角线,看看谁赢了。这是我到目前为止所拥有的。我是初学者,所以请不要让代码太难。 检查
在一项作业中,我被要求创建一个 [7] x [7] 矩阵,以及一个与计算机对战的井字棋游戏。玩家是 X,计算机是 O。[1][1] 是选择 1,[1][3] 是选择 2,[1][5] 是选择 3,[3
我正在制作井字游戏的 C 程序。我现在正在努力让AI立于不败之地,但是我遇到了一个问题。问题是人工智能只是在下一个可用问题中打印符号。为什么?我该如何解决它? 这是我的调用函数: void deter
我一直在转来转去,试图找出如何给我的玩家轮流。问题是有两个玩家玩井字棋,但我不知道该怎么做。这是我的代码: #include #include void displayBoard(char [3]
我遇到了基于我的 tic tac toe javascript 代码中创建的指标的问题。你能帮我解决吗? cell.indicator = 指示器; 控制台提到了这一点未捕获的类型错误:无法将属性“指
我正在创建一个管理井字游戏的程序,我正在创建一个列表列表 [['', '', ''], ['', '', ''], ['', '', '']] 为了创建游戏网格,我希望程序在找到像这样的匹配时停止
我是一名优秀的程序员,十分优秀!