개발/책

[명품 웹 프로그래밍] 8장 Open Challenge

Hyunsun 2021. 11. 15. 00:00
728x90
생능출판사 명품 HTML5+CSS3+Javascript 웹 프로그래밍 수정판

 

p.377 Open Challenge 08 갬블링 게임 웹 페이지 만들기

 

3개의 숫자가 모두 같으면 성공하는 갬블링 게임 웹 페이지를 작성하라. 처음에는 3개의 숫자 모두 0으로 출력되지만, 각 숫자를 클릭하면 0~2 사이의 랜덤한 값으로 출력한다. 마지막 숫자를 클릭할 때 3개의 숫자를 검사하여 모두 같으면 성공한 것으로 한다.

 

코드

test.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>갬블링 게임</title>
	<style>
		table {
			border : 1px solid violet;
			border-collapse : collapse; 
		}
		td {
			width : 50px;
			height : 50px;
			padding : 0px;
			font : italic 50px consolas, sans-serif;
			color : blue;
			text-align : center;
			background : linen;
		}
		div#msg {
			font : italic 18px consolas, sans-serif;
			color : magenta;
			margin-top : 10px;
		}
	</style>
	<script>
		var gameon = true;
		var gameArray = [0, 0, 0];

		function gen(e) {
			if(gameon == false)
				return;

			var n = Math.floor(Math.random()*3);
			var obj = e.target;
			obj.innerHTML = n;

			if(obj.id =="first")
				gameArray[0]=n;
			else if(obj.id == "second")
				gameArray[1]=n;
			else{
				gameArray[2]=n;

				var result = document.getElementById("msg");

				if(gameArray[0]==gameArray[1]&&gameArray[0]==gameArray[2]){
					result.innerHTML = "Success(click here to do again)";
				}
				else{
					result.innerHTML = "fail(click here to do again)";
				}
			}
		}

		function reset() {
			gameArray = [0, 0, 0];

			document.getElementById("first").innerHTML=0;
			document.getElementById("second").innerHTML=0;
			document.getElementById("third").innerHTML=0;
			document.getElementById("msg").innerHTML="";

			gameon = true;
		}
	</script>
</head>
<body>
	<h3>갬블링 게임</h3>
	<p>각 숫자를 클릭하면 0에서 2사이의 난수로 바뀝니다. 
	모두 같은 수가 나오면 승리합니다.</p>
	<hr>
	<table>
		<tr>
			<td id="first" onclick="gen(event)">0</td>
			<td id="second" onclick="gen(event)">0</td>
			<td id="third" onclick="gen(event)">0</td>
		</tr>
	</table>
	<div id="msg" onclick="reset()"></div>
</body>
</html>

 

결과

728x90