如何提醒井字游戏中的赢家? [英] How to alert winner in Tic Tac Toe?

查看:102
本文介绍了如何提醒井字游戏中的赢家?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

除此之外,我无法提醒胜利者。当用户试图点击一个已经按下的按钮时,我也试图提醒,但不知道我在这方面做了什么。所有的帮助表示赞赏。感谢你们。

 < table> 
< tr>
< td id =00onclick =makeMove(0,0)> 00< / td>
< td id =01onclick =makeMove(0,1)> 01< / td>
< td id =02onclick =makeMove(0,2)> 02< / td>
< / tr>
< tr>
< td id =10onclick =makeMove(1,0)> 10< / td>
< td id =11onclick =makeMove(1,1)> 11< / td>
< td id =12onclick =makeMove(1,2)> 12< / td>
< / tr>
< tr>
< td id =20onclick =makeMove(2,0)> 20< / td>
< td id =21onclick =makeMove(2,1)> 21< / td>
< td id =22onclick =makeMove(2,2)> 22< / td>
< / tr>
< / table>

< hr>
< input id =myMoveButtontype =submit>

< script src =java.js>< / script>

Javascript:

  // -1表示0的转动
// 1表示X的转动

//在每次移动之后
//直到游戏结束
//这个需要被翻转
//如果它是1,现在它将是-1,反之亦然

var turn = 1;

// 0表示尚未移动
//在该特定平方上
var grid = [
[0,0,0],
[0,0,0],
[0,0,0]
];


函数makeMove(row,column){

if(grid [row] [column] == 0){
grid [row] [column] =转;

var idOfSquareToChange = row ++ column;如果(转== 1){

$(#+ idOfSquareToChange).html('X');


} else {
$(#+ idOfSquareToChange).html('O');
}

//检查游戏是否超过

//如果游戏不超过
if(turn == 1){
turn = -1;
} else {
turn = 1;
}
printGrid();
} else {
alert('该广场已被选中');



函数printGrid(){

var board = grid [0] [0] ++ grid [0] [ 1] ++ grid [0] [2];
board + =\\\
;
board + = grid [1] [0] ++ grid [1] [1] ++ grid [1] [2];
board + =\\\
;
board + = grid [2] [0] ++ grid [2] [1] ++ grid [2] [2];

alert(board);


函数isGameOver(){
//这里是我们逻辑的地方
//如果某人赢了

}


解决方案

这就是我想到的: for(var i = 0; i< grid.length; i ++){$ b(

$ pre $ $ gridbox [i] [0] == grid [i] [2]&& grid [ i] [0]!= 0){
alert(grid [i] [0] +Wins);
_win = 1;
return;


for(var i = 0; i< grid.length; i ++){

if(grid [0] [i] == grid [1] [i]&& grid [0] [i] == grid [2] [i]&& grid [0] [i]!= 0){
alert(grid [0] [i] +胜利);
_win = 1;
return;



if(grid [0] [0] == grid [1] [1]&& grid [0] [0] == grid [2] [2]&& grid [0] [0]!= 0){
alert(grid [0] [0] +Wins);
_win = 1;
return;


if(grid [0] [2] == grid [1] [1]&& grid [0] [2] == grid [2] [0 ]&& grid [2] [0]!= 0){
alert(grid [1] [1] +Wins);
_win = 1;
return;
}

}

工作小提琴



这将检查单个列中的数据或在单行或对角线上应该是相同的。如果用户赢了,那么他不能点击其他任何东西。


I am having trouble trying to alert the winner, among other things. I also am trying to alert when the user trys to click on a button that has already been pressed, but have no idea what I am doing in that regard either. All help is appreciated. Thank you guys.

<table>
        <tr>
            <td id="00" onclick="makeMove(0,0)">00</td>
            <td id ="01" onclick="makeMove(0,1)">01</td>
            <td id ="02" onclick="makeMove(0,2)">02</td>
        </tr>
        <tr>
            <td id ="10" onclick="makeMove(1,0)">10</td>
            <td id ="11" onclick="makeMove(1,1)">11</td>
            <td id ="12" onclick="makeMove(1,2)">12</td>
        </tr>
        <tr>
            <td id ="20" onclick="makeMove(2,0)">20</td>
            <td id ="21" onclick="makeMove(2,1)">21</td>
            <td id ="22" onclick="makeMove(2,2)">22</td>     
 </tr>
    </table>

    <hr>
    <input id="myMoveButton" type="submit">

    <script src="java.js"></script>

Javascript:

// -1 means 0's turn
// 1 means X's turn

// AFTER EVERY MOVE
// UNTIL GAME OVER
// THIS NEEDS TO BE FLIPPED
// IF IT WAS 1, now it will be -1 and vice versa

var turn = 1;

// 0 means no move has been made yet 
// on that particular square
var grid = [
    [0, 0 ,0],
    [0, 0 ,0],
    [0, 0, 0]
];


function makeMove(row, column) {

    if (grid [row][column] == 0) {
        grid[row][column] = turn;

        var idOfSquareToChange = row +"" + column;

        if (turn == 1) {

            $("#"+idOfSquareToChange).html('X');
        }else {
            $("#"+idOfSquareToChange).html('O');
        }

        // CHECK IF GAME IS OVER

        // IF GAME ISN'T OVER   
        if (turn == 1) {
            turn = -1;
        }else {
            turn = 1;
        }
        printGrid();
    }else {
        alert('That square has been chosen');
    }
}

function printGrid(){

    var board = grid[0][0] + " " + grid [0][1] + " " + grid[0][2];
    board += "\n";
    board += grid[1][0] + " " + grid [1][1] + " " + grid[1][2];
    board += "\n";
    board += grid[2][0] + " " + grid [2][1] + " " + grid[2][2];

    alert(board);
}

function isGameOver() {
    // HERE IS WHERE OUR LOGIC WOULD GO
    // TO SEE IF SOMEONE won

}

解决方案

This is what i came up with:

function isGameOver() {
  for (var i = 0; i < grid.length; i++) {

      if(grid[i][0] == grid[i][1] && grid[i][0]==grid[i][2] && grid[i][0]!=0){
        alert(grid[i][0]+" Wins");
        _win=1;
        return;
      }
  }
  for (var i = 0; i < grid.length; i++) {

      if(grid[0][i] == grid[1][i] && grid[0][i]==grid[2][i]  && grid[0][i]!=0){
        alert(grid[0][i]+" Wins");
        _win=1;
        return;
      }
  }

  if(grid[0][0]==grid[1][1] && grid[0][0] == grid[2][2]  && grid[0][0]!=0){
    alert(grid[0][0]+" Wins");
    _win=1;
        return;
  }

  if(grid[0][2]==grid[1][1] && grid[0][2] == grid[2][0]  && grid[2][0]!=0){
    alert(grid[1][1]+" Wins");
    _win=1;
        return;
  }

}

Working fiddle

This will check whether data in a single column or in a single row or in diagonals should be same. And if a user wins then he can not click on anything else.

这篇关于如何提醒井字游戏中的赢家?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆