열심히 끝까지

[코딩 과제] - 7/26 주사위 게임 본문

디바이스 융합 자바(Java)기반 풀스택 개발자 양성과정(과제)

[코딩 과제] - 7/26 주사위 게임

노유림 2022. 7. 26. 18:14

오후에 과제검사 + 각 팀 브리핑
과제
주사위게임
시작 버튼 누르면-> 화면에 주사위 굴러감
> 1~6 주사위 사진 
일정 시간이 흐르면
컴                  사용자
주사위 출력     주사위 출력
-> 이겼다! 비겼다. 졌다...

>>> 내 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>주사위게임</title>
<style type="text/css">
	table{
		width : 60%;
		height:100px;
		margin:auto;
		text-align : center;
		border : 1px solid white;
		background : lightblue;
	}	
	td{
		font-size:20px;
	}
	
</style>
</head>
<body>

<!--
컴퓨터 주사위 이미지 : comImg
내 주사위 이미지 : myImg
결과 : result
주사위 게임 시작 : gameStart()

 -->
<table>

	<thead>
	<!-- 주사위게임 -->
	<tr>
		<td colspan="2"><h4>주사위 게임</h4></td>
	</tr>
	</thead>
	
	<tbody>
	
	<tr>
		<td>컴퓨터</td>
		<td>사용자</td>
	</tr>
	
	<tr>
		<td><img src="images/1.png" id="comImg"></td>
		<td><img src="images/1.png" id="myImg"></td>
	</tr>
	<tr>
		<td id ="result" colspan="2"></td>
	</tr>
	
	</tbody>
	
	<tfoot>
	<tr>
		<td colspan="2">
			<input type="button" value="주사위 던지기" onclick="gameStart();">
		</td>
	</tr>
	</tfoot>
	
</table>

<script type="text/javascript">
    // 배열에 사진 집어넣기
	var imgArr= new Array();
	for(var i = 0; i<=5; i++){
		imgArr[i]='images/'+(i+1)+'.png';
	}
	
	var result; // 결과 출력(이겼다!, 비겼다., 졌다...)
	var num=["comnum", "mynum"]; // 컴퓨터의 주사위 숫자, 사용자의 주사위 숫자
	var images=["comImg", "myImg"]; // 이미지 저장
	
	function gameStart(){// 버튼 누르면 시작
		beforeResult(); // gif 이미지 시작
		setTimeout(function(){ // 딜레이 후 랜덤으로 숫자주사위 이미지 출력
			showImg();
		},3000);
	}
	
	function beforeResult(){ // 결과 나오기 전에 이미지에 gif(움짤) 배치
		for(var i=0; i < 2; i++){
			document.getElementById(images[i]).src="images/movegif.gif";
		}
	}
	
	function showImg(){ // 골라진 주사위 이미지 각 배치
		for(var i=0; i<2; i++){
			num[i]=Math.floor(Math.random()*5);	// 랜덤으로 돌리기
			document.getElementById(images[i]).src=imgArr[num[i]];
			// 이미지 저장하는 곳에 골라진 이미지 값 저장(랜덤 숫자)
		}
		
		result = document.getElementById("result"); // 결과를 저장할 값
		
		if(num[0]<num[1]){ // 컴퓨터의 숫자보다 내 숫자가 크면?
			result.innerText = "이겼다!";
		}
		else if(num[0]==num[1]){ // 동일하면?
			result.innerText="비겼다.";
		}
		else{ // 작으면?
			result.innerText="졌다...";
		}
	}
	
	
</script>

</body>
</html>

 

>> 강사님 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>주사위 게임</title>

<style type="text/css">
	#title{
		width:500px;
		height:50px;
		background-color:lightpink;
		line-height:50px;
		text-align:center;
		cursor:pointer;
		margin : 0 auto;
	}
	#content {
		width:500px;
		height:400px;
		background-color:lightgreen;
		margin : 0 auto;	
	}
	#com{ 
		float : left;
	}
	#guest{
		float : right;
	}
	
</style>

</head>
<body>

<div id="title">게임시작!</div>
<div id="content">
	<img id="com" alt="컴퓨터" src="images/1.png">
	<img id="guest" alt="사용자" src="images/1.png">
</div>

<script type="text/javascript">
	document.querySelector('#title').onclick=function(){
		// true false boolean, 혹은 0 1 boolean 처리 둘중 하나 했었음
		// 강사님은 '시작'이라는 textnode 가리켜서 묻기
		if(this.firstChild.nodeValue=='게임시작!'){ // 시작상태라면? - title의 상태가 게임시작이니?
			this.firstChild.nodeValue='결과 확인하기';
			// 색 바꾸기
			this.style.backgroundColor='lightblue';
			startgame();
		}
		else{ // 아니라면?
			this.firstChild.nodeValue='게임시작!';
			this.style.backgroundColor='lightpink';
			endgame();
		}
	}
	
	function startgame(){
		document.querySelector('#com').src='images/movegif.gif';
		document.querySelector('#guest').src='images/movegif.gif';
	}
	
	function endgame(){
		var com=Math.floor(Math.random()*6)+1;
		var guest=Math.floor(Math.random()*6)+1;
		document.querySelector('#com').src='images/'+com+'.png';
		document.querySelector('#guest').src='images/'+guest+'.png';
		// 시간 설정하는 법
		// setTimeout, setTimeInterval
		setTimeout(function(){
			if(com<guest){
				alert('이겼다!!! :D');
			}
			else if(com==guest){
				alert('비김 ㅇㅅㅇ');
			}
			else{
				alert('졌다...');
			}
			
		},1000);
		
	}
	
</script>

</body>
</html>

>> 훨씬 더 짧고 보기 편하다 

     강사님의 방법 잘 기억해 놓을 것!