

์ด๋ฒ ํ๋ก์ ํธ๋ ์ปดํจํฐ์์ ๋๋ค ์ซ์๋ฅผ ์ง์ ํด ์ซ์๋ฅผ ๋ง์ถ๋ ๊ฒ์์ด๋ค.
ํ๋ก์ ํธ ๋ง๋๋ ์กฐ๊ฑด
1. ๋๋ค ๋ฒํธ ์ง์
2. 5๋ฒ ๊ธฐํ๋์ ๋ง์ถฐ์ผํ๊ณ ์ ์ ๊ฐ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๊ณ ์ ๋ ฅ ๋ฒํผ ๋๋ฌ ์ ๋ ฅ(5๋ฒ ๊ธฐํ๊ฐ ๋๋ฌ์ผ๋ฉด ๋ฒํผ ๊ธฐ๋ฅ ๋นํ์ฑํ)
3. ์ ์ ๊ฐ 1~100 ๋ฒ์ ๋ฐ์ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด ์๋ ค์ค๋ค.
4. ์ ์ ๊ฐ ์ด๋ฏธ ์ ๋ ฅํ ์ซ์๋ฅผ ์ฌ์ ๋ ฅํ๋ฉด ์๋ ค์ค๋ค.
5. ์ ์ ๊ฐ ์ ๋ ฅํ ์ซ์๋ณด๋ค ๋์ผ๋ฉดup๋ฎ์ผ๋ฉดdown๋ง์ถ๋ฉด๋ง์ท์ต๋๋ค.์ถ๋ ฅ.
6.RESET๋ฒํผ์ ๋๋ฅด๋ฉด ๊ธฐํ, ๋๋ค๋ฒํธ, ์ ๋ ฅํ ์ซ์, ์ ๋ถ ์ด๊ธฐํ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="og:title" content="Random Number">
<meta property="og:description" content="์์ ์์ผ๋ฉด ๋ง์ถฐ๋ด!">
<meta property="og:image" content="Image/15457.jpg">
<link rel="stylesheet" href="style.css">
<link href="https://fonts.googleapis.com/css2?family=Black+Han+Sans&display=swap" rel="stylesheet">
<title>์ซ์ ๋ง์ถ๊ธฐ ๊ฒ์!</title>
</head>
<body>
<div id="container">
<div id="secondContainer">
<h1>์ซ์๋ง์ถ๊ธฐ ๊ฒ์!</h1>
<p>5๋ฒ์์ ๋ง์ถฐ๋ด!</p>
<p>๊ทธ๋ผ <span>์ปคํผ</span>์๋ค!</p>
<img id="changeImg"src="Images/go!.gif" alt="๊ฐ์!!">
<p id="result">๋์ ํด๋ด~๐</p>
<div id="chance">๋จ์๊ธฐํ : 5</div>
<div class="inputArea">
<input id="inputNumber" type="number" placeholder="1๋ถํฐ 100๊น์ง ์ซ์๋ฅผ ์
๋ ฅํ์ธ์.">
<button id="startButton">์
๋ ฅ!</button>
<button id="resetButton">RESET!</button>
</div>
</div>
</div>
<script src="main.js"></script>
</body>
</html>
<meta property="og:title" content="Random Number"> <meta property="og:description" content="์์ ์์ผ๋ฉด ๋ง์ถฐ๋ด!"> <meta property="og:image" content="Image/15457.jpg">์ ์ฝ๋๋ ๋ชจ๋ฐ์ผ๋ก url ์ฃผ์๋ฅผ ๋ณด๋ผ๋ ์๋์ ๊ฐ์ด ๋ณด๋ด์ฃผ๋ ์ญํ ์ด๋ค.
// ๋๋ค ๋ฒํธ ์ง์
// ์ ์ ๊ฐ ๋ฒํธ๋ฅผ ์
๋ ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ .go๋ผ๋ ๋ฒํผ์ ๋๋ฆ
// ๋ง์ฝ์ ์ ์ ๊ฐ ๋๋ค๋ฒํธ๋ฅผ ๋ง์ถ๋ฉด, ๋ง์ท์ต๋๋ค!
// ๋๋ค๋ฒํธ๊ฐ < ์ ์ ๋ฒํธ Down
// ๋๋ค๋ฒํธ๊ฐ > ์ ์ ๋ฒํธ up
// reset๋ฒํผ์ ๋๋ฅด๋ฉด ๊ฒ์์ด ๋ฆฌ์
๋๋ค.
// 5๋ฒ์ ๊ธฐํ๋ฅผ ๋ค์ฐ๋ฉด ๊ฒ์์ด ๋๋๋ค. (๋์ด์ ์ถ์ธก ๋ถ๊ฐ, ๋ฒํผ์ด disable)
// ์ ์ ๊ฐ 1~100 ๋ฒ์ ๋ฐ์ ์ซ์๋ฅผ ์
๋ ฅํ๋ฉด ์๋ ค์ค๋ค. ๊ธฐํ๋ฅผ ๊น์ง ์๋๋ค.
// ์ ์ ๊ฐ ์ด๋ฏธ ์
๋ ฅํ ์ซ์๋ฅผ ๋ ์
๋ ฅํ๋ฉด, ์๋ ค์ค๋ค, ๊ธฐํ๋ฅผ ๊น์ง ์๋๋ค.
let randomNumber = 0;
let inputNum = document.getElementById("inputNumber");
let startBtn = document.getElementById("startButton");
let result = document.getElementById("result");
let resetBtn = document.getElementById("resetButton");
let chanceArea = document.getElementById("chance");
let chance = 5;
let gameEnd = false;
let inputNumList = [];
let change = document.getElementById("changeImg");
startBtn.style.cursor="pointer";
// ๋๋ค ๋ฒํธ ์ง์ .
function computerNum(){
randomNumber = Math.floor(Math.random()*100)+1;
console.log(randomNumber);
}
// ๋ฒํผ
startBtn.addEventListener("click", start);
resetBtn.addEventListener("click", reset);
// ๋ง์ฐ์ค๋ก ์
๋ ฅ์ฐฝ์ ํด๋ฆญํ ๋ ์
๋ ฅ๋์ด ์๋ ๊ฐ์ ๋ฆฌ์
inputNum.addEventListener("focus", function(){
inputNum.value="";
})
// startbutton์ ๋๋ ์ ๋ ๋ฐ์
function start(){
let inputNumValue = inputNum.value;
if(inputNumValue > 100 || inputNumValue < 1){
result.textContent = "1๋ถํฐ 100์ฌ์ด์ ์ซ์๋ง ์
๋ ฅํด์ฃผ์ธ์."
return;
}
if(inputNumList.includes(inputNumValue)){
result.textContent = "์ด๋ฏธ ์
๋ ฅํ ์ซ์์
๋๋ค."
return;
}
chance--;
chanceArea.textContent =`๋จ์ ๊ธฐํ : ${chance}`;
if(inputNumValue < randomNumber){
change.src="Images/up.gif"
result.textContent = "UP!!";
} else if(inputNumValue > randomNumber){
result.textContent = "DOWN!!";
change.src="Images/down.gif"
} else {
result.textContent = "์ ๋ต์
๋๋ค!!!";
change.src="Images/ok.gif"
gameEnd=true;
}
inputNumList.push(inputNumValue);
if(chance==0){
gameEnd = true;
}
if(gameEnd==true){
startBtn.disabled= true;
startBtn.style.backgroundColor="rgba(75, 87, 255, 0.4)";
startBtn.style.cursor = "default";
}
};
// ๋ฆฌ์
๋ฒํผ ํจ์
function reset(){
inputNumValue="";
computerNum();
gameEnd = false;
chance = 5;
startBtn.disabled =false;
chanceArea.textContent =`๋จ์ ๊ธฐํ : ${chance}`;
inputNumList = [];
change.src="Images/go!.gif"
};
// ํจ์๋ฅผ ์คํํ๋ ๊ฒ.
computerNum();
์ฝ๋ ๋ฆฌ๋ทฐ
์ ์ฝ๋๋ฅผ ํ๋์ฉ ๋ฆฌ๋ทฐํด๋ณด์.let randomNumber = 0; let inputNum = document.getElementById("inputNumber"); let startBtn = document.getElementById("startButton"); let result = document.getElementById("result"); let resetBtn = document.getElementById("resetButton"); let chanceArea = document.getElementById("chance"); let chance = 5; let gameEnd = false; let inputNumList = []; let change = document.getElementById("changeImg");์ผ๋จ์ ๋ณ์๋ช ์ ์ง์ ํด์ฃผ๊ณ ํ ๋น์ ํด์ค๋ค.
document.getElementById("inputNumber");๋ณ์์ ๋ค์๊ณผ ๊ฐ์ด ํ ๋นํ ์ด์ ๋ HTML๋ฌธ์์<input id="inputNumber" type="number" placeholder="1๋ถํฐ 100๊น์ง ์ซ์๋ฅผ ์ ๋ ฅํ์ธ์.">์ ์๋ ID ๊ฐ์ ์ง์ ํด ํ ๋นํ ๊ฐ์ด๋ค.
์ฆinputNum์ด๋ผ๋ ๋ณ์์inputNumber๋ผ๋ ID๊ฐ์ด ํ ๋น์ด ๋ ๊ฒ์ด๋ค.function computerNum(){ randomNumber = Math.floor(Math.random()*100)+1; console.log(randomNumber); }
function์ ํจ์๋ฅผ ์ง์ ํด ์ฃผ๋๊ฒ์ด๋ค.function computerNum()์ ํจ์ ์ด๋ฆ์computerNum()์ด๋ผ๋ ํจ์๋ฅผ ์ ์ธํ ๊ฒ์ด๋ค.
computerNum()ํจ์ ์์randomNumber = Math.floor(Math.random()*100)+1;์randomNumber๋ผ๋ ๋ณ์์Math.floor(Math.random()*100)+1์ ํ ๋นํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์Math.floor()์ ์์์ ์ดํ๋ฅผ ๋ฒ๋ฆผํ๋ ๋ด์ฅํจ์์ด๊ณ ,Math.random()์ 0๋ถํฐ 1๊น์ง ์์์ ๊น์ง ๋๋ค์ผ๋ก ์ง์ ํด์ฃผ๋ ๋ด์ฅ ํจ์์ด๋ค.Math.random()*100๋๋คํจ์์์ 100์ ๊ณฑํ๊ณ 1์ ๋ํ๋ ์ด์ ๋ 1๋ถํฐ 100๊น์ง ๋๋ค ์ซ์๊ฐ ๋์์ผํด์ ์ด๋ค.
100์ ๊ณฑํ๋ฉด 0~99๊น์ง ๋๋ค์ซ์๊ฐ ๋์ฌ ๊ฒ์ด๊ณ ๊ฑฐ๊ธฐ์ 1์ ๋ํ๋ฉด 1~100๊น์ง ์ถ๋ ฅ์ด ๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ 100์ ๊ณฑํ๋ฉด 1๋ถํฐ 100๊น์ง ์์์ ์ด ํํ์ด ๋๋๋ฐ ์ด ์์์ ์ ์์ ๋ ค๊ณMath.floor()ํจ์๋ฅผ ์จ์ ์์์ ์ ๋ฒ๋ ค ์ ์๋ง ํ์ํด์ฃผ๋ ๊ฒ์ด๋ค.startBtn.addEventListener("click", start); resetBtn.addEventListener("click", reset);
๋ณ์๋ช .addEventListener("์ด๋ฒคํธ", ํจ์์ด๋ฆ);
์ ๋ ต, ๋ฆฌ์ ๋ฒํผ์ ํจ์๋ฅผ ์ด๋ฒคํธ๋ฅผ ์ง์ ํด ์ฃผ๋ ๊ฒ์ด๋ค. ๋ฒํผ์ ํด๋ฆญ์ ํ์ ๋ ๊ฐ ํจ์๋ฅผ ์คํํ๋ ์ด๋ฒคํธ๋ฅผ ์ง์ ํด์ฃผ๋ ๊ฒ์ด๋ค.function start(){ let inputNumValue = inputNum.value; if(inputNumValue > 100 || inputNumValue < 1){ result.textContent = "1๋ถํฐ 100์ฌ์ด์ ์ซ์๋ง ์ ๋ ฅํด์ฃผ์ธ์." return; } inputNumList.push(inputNumValue); if(inputNumList.includes(inputNumValue)){ result.textContent = "์ด๋ฏธ ์ ๋ ฅํ ์ซ์์ ๋๋ค." return; } chance--; chanceArea.textContent =`๋จ์ ๊ธฐํ : ${chance}`; if(inputNumValue < randomNumber){ change.src="Images/up.gif" result.textContent = "UP!!"; } else if(inputNumValue > randomNumber){ result.textContent = "DOWN!!"; change.src="Images/down.gif" } else { result.textContent = "์ ๋ต์ ๋๋ค!!!"; change.src="Images/ok.gif" gameEnd=true; } if(chance==0){ gameEnd = true; } if(gameEnd==true){ startBtn.disabled= true; startBtn.style.backgroundColor="rgba(75, 87, 255, 0.4)"; startBtn.style.cursor = "default"; } };
let inputNumValue = inputNum.value;์inputNumValue๋ณ์์inputNum.value์ ํ ๋นํ๋ค. ์ฌ๊ธฐ์.value๋inputNum์ ์ ๋ ฅ๋ ์ซ์์ ๊ฐ์ ๋ฐ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.//์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ด 100๋ณด๋ค ํฌ๊ฑฐ๋ 1๋ณด๋ค ์๋ค๋ฉด html๋ฌธ์ id๊ฐ์ธ //result์ textContent(์ถ๋ ฅํ๋ค.) 1๋ถํฐ 100์ฌ์ด์ ์ซ์๋ง ์ ๋ ฅํ์ธ์." ๋ผ๋ ๊ฐ์ //์ถ๋ ฅํ๊ณ ,์ถ๋ ฅ์ด ๋ฌ๋ค๋ฉด return ์ด๋ค๊ฐ๋ ๋ฐํํ์ง ์๊ณ ๋๋ธ๋ค. if(inputNumValue > 100 || inputNumValue < 1){ result.textContent = "1๋ถํฐ 100์ฌ์ด์ ์ซ์๋ง ์ ๋ ฅํด์ฃผ์ธ์." return; } //inputList ๋ฐฐ์ด์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ ๋ ฅ๊ฐ์ ์ ๋ ฅํ๋ค. inputNumList.push(inputNumValue); //์ฌ์ฉ์๊ฐ ์ ๋ ฅ๊ฐ์ ์ ๋ ฅํ๋ฉด inputNumList๋ผ๋ ๋ฐฐ์ด์ ์ ๋ ฅ์ด๋๋ค. //๊ทธ๋ผ ์ ๋ ฅ์ด ๋ ๋ฐฐ์ด๊ฐ์ .includes(~์์ ํฌํจ์ด ๋์ด์๋?)๋ก ์ ๋ ฅํ //๊ฐ์ด ํฌํจ์ด ๋์ด ์๋ค๋ฉด result์ textContent(์ถ๋ ฅํ๋ค.) //"์ด๋ฏธ ์ ๋ ฅํ ์ซ์์ ๋๋ค."๋ฅผ ์ถ๋ ฅํ๊ณ , ์ถ๋ ฅ์ด ๋ฌ๋ค๋ฉด return ํ๋ค. if(inputNumList.includes(inputNumValue)){ result.textContent = "์ด๋ฏธ ์ ๋ ฅํ ์ซ์์ ๋๋ค." return; } //์ ์ if๋ฌธ์ ์๋ฌด๊ฒ๋ ํฌํจ์ด ๋์์๋๋ค๋ฉด ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ ๋ ฅํ๊ณ //์ ๋ ฅ ๋ฒํผ์ ๋๋ฌ ๋๋ค๊ฐ๊ณผ ์ ๋ ฅ๊ฐ์ด ๋ง์ง ์๋๋ค๋ฉด ๊ธฐํ๊ฐ ํ๋์ฉ ๊ฐ์ํ๋ค. chance--; //๊ทธ ๋จ์ ๊ธฐํ๋ฅผ chanceArea๋ผ๋ id๊ฐ์ "๋จ์๊ธฐํ : (์ฐฌ์ค๊ฐ)"์ด ์ถ๋ ฅ์ด๋๋ค. chanceArea.textContent =`๋จ์ ๊ธฐํ : ${chance}`;์ ์ฝ๋๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ์ ๋ ๊ฐ์ ์ซ์๋ 1๋ถํฐ 100๊น์ง์ ์ซ์๊ฐ ๋์ผ๋ฉด ๋จ์๊ธฐํ๋ฅผ ๊น์ง ์๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด ๋จ์ ์ฐฌ์ค๋ฅผ ๊น๋ ์ฝ๋์ด๋ค.
//๋ง์ฝ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ๋๋ค๋ฒํธ๋ณด๋ค ์๋ค๋ฉด //change.src= ์๋ ์๋ ๊ทธ๋ฆผ์ ์ฃผ์๋ฅผ ๋ฐ๊พธ๊ณ . //result ๊ฐ์ "up"์ด๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅ. if(inputNumValue < randomNumber){ change.src="Images/up.gif" result.textContent = "UP!!"; //๋ง์ฝ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ๋๋ค๋ฒํธ๋ณด๋ค ํฌ๋ค๋ฉด //change.src= ์๋ ์๋ ๊ทธ๋ฆผ์ ์ฃผ์๋ฅผ ๋ฐ๊พธ๊ณ . //result ๊ฐ์ "down"์ด๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅ. } else if(inputNumValue > randomNumber){ result.textContent = "DOWN!!"; change.src="Images/down.gif" //๋ง์ฝ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ๋๋ค๋ฒํธ์ ์ผ์นํ๋ค๋ฉด //change.src= ์๋ ์๋ ๊ทธ๋ฆผ์ ์ฃผ์๋ฅผ ๋ฐ๊พธ๊ณ . //gameEnd๋ผ๋ ๋ณ์์ true๋ฅผ ํ ๋นํ๋ค. } else { result.textContent = "์ ๋ต์ ๋๋ค!!!"; change.src="Images/ok.gif" gameEnd=true; } //๋ง์ฝ์ ์ฌ์ฉ์์ ๋จ์๊ธฐํ๊ฐ 0์ด ๋๋ฉด gameEnd ๋ณ์์ ture๋ฅผ ํ ๋นํ๋ค. if(chance==0){ gameEnd = true; } //๋ง์ฝ์ gameEnd๊ฐ true์ผ ๊ฒฝ์ฐ ์ ๋ ฅ๋ฒํผ์ ๋นํ์ฑํ ์ํค๊ณ //๋ฒํผ์ ํ๋ฆฌ๊ฒ ๋ฐ๊พธ๊ณ . ๋ฒํผ์ ์ปค์๋ฅผ ๊ฐ์ ธ๋ค ๋์๋ ๋ง์ฐ์ค์ปค์๋ฅผ default ์ํจ๋ค. if(gameEnd==true){ startBtn.disabled= true; startBtn.style.backgroundColor="rgba(75, 87, 255, 0.4)"; startBtn.style.cursor = "default"; }์ ์ฝ๋๋ ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ ๊ฐ์ด ์ถ๋ ฅ์ด๋๊ณ , ์ฌ์ฉ์์ ๋จ๋๊ธฐํ๊ฐ ์์ ๋๋, ์ ๋ต์ผ๋๋ ๋ฒํผ์ ๋นํ์ฑํ ์ํค๋ ์ฝ๋์ด๋ค.
function reset(){ inputNumValue=""; computerNum(); gameEnd = false; chance = 5; startBtn.disabled =false; chanceArea.textContent =`๋จ์ ๊ธฐํ : ${chance}`; inputNumList = []; change.src="Images/go!.gif" };๋ฆฌ์ ๋ฒํผ์ด๋ค. ๋ฆฌ์ ๋ฒํผ์ ๋๋ฅด๋ฉด
inputNumValue="";์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ์ด๊ธฐํ ์ํค๊ณcomputerNum();๋ค์ ๋๋ค๋ฒํธ๋ฅผ ์คํ์ํจ๋ค. ์ดํgameEnd = false;gameEnd์ false๋ก ๋ฐ๊ฟ ๋ฒํผ ๋นํ์ฑํ ํจ์์์ ๋น ์ ธ๋์จ๋ค. ๊ทธ๋ฆฌ๊ณchance = 5;๋จ์๊ธฐํ๋ฅผ ๋ค์ 5๋ฒ ์ผ๋ก ์ด๊ธฐํ์ํค๊ณstartBtn.disabled =false;๋ฒํผ์ ๋ค์ ํ์ฑํ ์์ผchanceArea.textContent =๋จ์ ๊ธฐํ : ${chance};๋จ์๊ธฐํ๋ฅผ ๋ค์ ์ถ๋ ฅ์ํจ๋ค. ๋ง์ง๋ง์ผ๋กchange.src="Images/go!.gif"์๋ ์ด๋ฏธ์ง๋ก ๋ฐ๊พผ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฌ๋ฌ๊ฐ์ง๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ ๋๊ผ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ ๋ฐฐ์์ ๋ ๋ง์๊ฒ์ ๋ง๋ค์ด ๋ด์ผ ๊ฒ ๋ค.