如何提醒井字游戏中的赢家? [英] How to alert winner in Tic Tac Toe?
问题描述
< 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(){
//这里是我们逻辑的地方
//如果某人赢了
}
这就是我想到的:函数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;
}
}
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屋!