저는 아직 JS에서 초보자입니다. 도움과 모든 종류의 설명에 감사드립니다. 그래서 여기에 나는 간다. 두 선수 중 한 명이 원하는대로 클릭 할 때마다 다음 코드가 "X"와 "O"사이를 전환하지 않는 이유는 조금도 없습니다. 한 가지는 if 문의 논리에 문제가 있는지 확인하는 것입니다. 다음과 같이Javascript tic tac toe 게임에서 플레이어간에 전환하는 방법
내 HTML은 다음과 같습니다
<!DOCTYPE html>
<html>
<head>
<title>Tic Tac Toe</title>
<script text="javascript" src="tic.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<center>
<body>
<h1 style="font-family:arial;">Tic-Tac-Toe</h1>
<table>
<tr>
<td id = "case1" onclick="display_input('case1')"></td>
<td id = "case2" onclick="display_input('case2')"></td>
<td id = "case3" onclick="display_input('case3')"></td>
</tr>
<tr>
<td id = "case4" onclick="display_input('case4')"></td>
<td id = "case5" onclick="display_input('case5')"></td>
<td id = "case6" onclick="display_input('case6')"></td>
</tr>
<tr>
<td id = "case7" onclick="display_input('case7')"></td>
<td id = "case8" onclick="display_input('case8')"></td>
<td id = "case9" onclick="display_input('case9')"></td>
</tr>
</table>
<footer>
<p>Copyright© 2014</p>
</footer>
</body>
</center>
</html>
자바 스크립트 : display_input
의 모든 호출에
function display_input(square){
var player_one = 1;
if (player_one == 1){
document.getElementById(square).innerHTML = "X";
player_one = 0;
} else {
document.getElementById(square).innerHTML = "O";
player_one = 1;
}
}
: 후속 호출 실제로 (하나의) 높은 범위 변수가 토글되도록 함수 외부 선언 이동 노동 조합 지부. 그 말은'td'를 클릭 할 때마다'player_one'은'1'과 같을 것입니다. 이 문제를 해결하려면 함수 앞에 (코드 상단에) 'var player_one = 1;'을 넣으십시오. JavaScript 변수 범위 – ziGi
에 대해 읽으십시오. 제게 다소 수치 스럽습니다. 도움 친절 각하 주셔서 감사합니다! 그래도 좀 더 자세히 설명해 주시겠습니까? –
몇 마디로 말하면, 자바 스크립트가로드되고 함수 밖의 변수를 가질 경우, 함수는 한 번만 실행됩니다. 이것은 다소 초기화 된 것입니다. 그 후에 버튼을 누를 때마다 함수 만 실행됩니다 (그리고 초기화 될 때 현재 값을 확인합니다). 이 기사에서는 JS에서 어떤 범위가 의미하는지 분명히해야합니다. http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript – ziGi