์ฒซ playground ๊ฒ์๊ธ์ด๋ค์.
์๊ณ ์๋ ์ง์์ผ๋ก ์ถฉ๋ถํ ์ฌ๋ฐ๋ ๊ฒ๋ค์ ๋ง๋ค์ด๋ณผ ์ ์๋ค๋ ๊ฒ์ ๋ชฉํ๋ก ๋ง๋ ๊ฒ์๊ธ์ ๋๋ค.
์ต์ด๋ก ๊ฒ์ํ๊ฒ๋ ๊ธ์ ๋ฐ๋ก ๋๋ค์ซ์๋ง์ถ๊ธฐ ๊ฒ์์ ๋๋ค.
* ๊ฒฐ๊ณผํ๋ฉด
๊ฒฐ๊ณผํ๋ฉด์ ๋ณด๊ณ ์ ์ถํ์ฌ ๋จผ์ ์ง์ ๋ง๋ค์ด ๋ณด์๊ณ
๋์ค์ ๋น๊ตํด๋ณด๋๊ฒ์ ์ถ์ฒ๋๋ ค์.
์ ์ฝ๋๊ฐ ๋ฅ์ฝ๋์ผ์๋์์์์
* ๊ธฐ๋ฅ์ค๊ณ
๊ฐ๋จํ๊ฒ ํ๋ฉด, ๊ธฐ๋ฅ์์ ํด์ผํ ์ผ์ ๋์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1. ์์๋ฒํผ ํด๋ฆญ
1-1. ํ๋ฉด
- "๋ด๊ฐ์๊ฐํ๋ ์ซ์๋ฅผ ๋ง์ถฐ ๋ณด์ธ์(1๋ถํฐ 100๊น์ง)" ๋ฌธ๊ตฌ ์ถ๋ ฅ
- ์ผ๋ ฅInput, ์ ์ถButton, ๊ธฐํcnt(maxCnt)๋ฒ ๋จ์์ด์ ์ถ๋ ฅ
1-2. ๊ธฐ๋ฅ
- ๋ง์ถฐ์ผํ ๋๋ค ์ซ์ ์์ฑ
- input clear, input disabled=false, input์ focus
- ๊ธฐํcnt(maxCnt) ์ด๊ธฐํ
โ
2. ์ ์ถ๋ฒํผ
2-1. ํ๋ฉด
- ๋ก๊ทธ์ถ๋ ฅ
( ๋์์ง ๋ฎ์์ง ์ซ์ ๋น๊ตํ ์ถ๋ ฅ , ์: ์ ๋ ฅ๊ฐ๋ณด๋ค ๋์์, ์ ๋ ฅ๊ฐ๋ณด๋ค ๋ฎ์์ )
- ๊ธฐํ-1 ์ถ๋ ฅ
2-2. ๊ธฐ๋ฅ
- ๋ง์ท๋์ง, ํ๋ ธ๋์ง ๋น๊ต
- ๊ธฐํ๋ฅผ ๋ค์ผ๋์ง ์ฒดํฌ
- input clear, input focus
โ
3. ์ข ๋ฃ
3-1. ํ๋ฉด
- ์์๋ฒํผ ์ธ์ ํ๋ฉด ์จ๊น
- ๋ก๊ทธ์ถ๋ ฅ ์ค์งโ ๋ฐ ์ด๊ฒผ๋์ง, ์ก๋์ง ์ถ๋ ฅ
- ํ๋จ์ "์ฌ์์", "์ข ๋ฃ" ๋ฒํผ ์ถ๋ ฅ
3-2. ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ์ซ์ ์ ๋ ฅ ๋ฐฉ์ง
4. ์ฌ์์
4-1. ํ๋ฉด
- ์์๋ฒํผ ํด๋ฆญํ์๋์ ๊ฐ์
4-2. ๊ธฐ๋ฅ
- ์์๋ฒํผ ํด๋ฆญํ์๋์ ๊ฐ์
* ๊ฐ๋ฐ์์
์ฐ์ ๊ธฐ๋ณธ ํ๋ฉด์ ๋ง๋ค์ด๋ด ์๋ค.
- index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>๋๋ค์ซ์๋ง์ถ๊ธฐ๊ฒ์</title>
</head>
<body>
<div class="wrapper">
<div class="stage01"> // ์ต์ดํ๋ฉด
<button class="start_btn">์์ํ๊ธฐ</button>
<div>
<div class="stage02"> // "์์ํ๊ธฐ" ํด๋ฆญ ํ ์ถ๋ ฅ
<p class="gameStartText">๋ด๊ฐ์๊ฐํ๋ ์ซ์๋ฅผ ๋ง์ถฐ ๋ณด์ธ์(1๋ถํฐ 100๊น์ง)</p>
<p>
<input type="number" placeholder="์)15" name="num"/> ์ผ๊บผ๊ฐ์์!
<button class="apply_btn">์ ์ถ</button>
<span>๊ธฐํ๊ฐ <strong class="leftNum">10๋ฒ</strong>๋จ์์ด์!</span>
</p>
<ul class="log"> // ์ฌ์ฉ์๊ฐ ์ซ์๋ฅผ ๋ฃ์ผ๋ฉด ์ถ๋ ฅ
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋์์!</li>
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋ฎ์์!</li>
</ul>
<p class="reStart"> // ๊ฒ์์ด ์ข
๋ฃ๋๋ฉด ์ถ๋ ฅ
<button class="btn_restart"">๋ค์ํ ๋์!</button>
<button class="btn_end">๊ทธ๋งํ ๋์!</button>
</p>
</div>
</div>
</body>
</html>
|
cs |
๋งํฌ์ ์ ์๋ฃํ์ต๋๋ค. ์คํ์ผ๋ ๋ฏธ๋ฆฌ ์์์ค๊ป์.
- style.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
body{
background-color:lightgray;
}
.gameStartText{
font-size: 18px;
font-weight: 600;
}
input[name='num']{
padding:8px;
height:22px;
border-radius:4px;
border:1px solid #ddd;
}
/* button s */
.start_btn{
border:0 none;
background-color:darkcyan;
color:#fff;
padding:12px 22px;
border-radius:4px;
font-size:16px;
}
.apply_btn{
border:0 none;
background-color:#333;
color:#fff;
height:32px;
margin-left: 22px;
padding:0 22px;
border-radius:4px;
font-size:16px;
}
.btn_restart,
.btn_end{
border:0 none;
color:#fff;
padding:12px 22px;
border-radius:4px;
font-size:16px;
}
.btn_restart{ background-color:darkcyan; margin-right: 12px; }
.btn_end{ background-color:darkred; }
|
cs |
์ต์ดํ๋ฉด์๋ ์์๋ฒํผ๋ง ๋์ค๋ฉด๋ฉ๋๋ค.
css์ ๋ค์ ์์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ํ "00๋ฅผ ์ ๋ ฅํ์ด์, 00๋ณด๋ค ๋์์!" ์ด๋ถ๋ถ์ ๋์ค์ ๋์ ์ผ๋ก ์ซ์๋ฅผ ๋น๊ตํด์ ํ๊ทธ๋ฅผ ์์ฑํด ๋ฃ์ด์ค ๋ถ๋ถ์ด๋ผ ์์ ์ง์๋ฒ๋ฆฝ๋๋ค.
- style.css
1
2
3
4
|
.stage02,
.reStart{
display:none;
}
|
cs |
- index.html
1
2
3
4
5
6
7
8
9
|
...
<ul class="log">
<!--
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋์์!</li>
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋ฎ์์!</li>
์ถ๋ ฅํ๊ธฐ
-->
</ul>
...
|
cs |
์ด์ ์คํฌ๋ฆฝํธ ์์ฑ๋ง ๋จ์๋ค์.
- Javascript
์ผ๋จ randomGame.js ๋ผ๋ ํ์ผ์ ์์ฑํ๊ณ , ์ด๋ฐ์ ํ์ํ ๋ณ์๊ฐ ๋ญ๋ญ์์์ง ์๊ฐํด๋ด ๋๋ค.
1. ์ผ๋จ ๋ง์ถฐ์ผํ๋ ์ซ์๊ฐ ์์ด์ผ ๊ฒ ๋ค์. ๋๋ค์ผ๋ก 0 ~ 100๊น์ง ์์ฑํด์ผ๋๋ ๊ฐ์ด ์์ด์ผ ๊ฒ ์ด์.
2. ์ง๊ธ ์ํ๊ฐ ์์ํ๊ฒ์ธ์ง ์ข ๋ฃ๋ ๊ฒ์ธ์ง ์์์ผํ๋๊น ์ํ๊ฐ๋ ๋ฃ์ด์ค๊ป์.
3. ๊ฒ์์ ๊ท์น์ 10๋ฒ๋ง ์ ๋ ฅ๋ฐ๊ฒ ํด๋์์ด์. 10๋ฒ์ดํ๋ก ๋ง์ถ๋ฉด ์ด๊ธฐ๋๊ฑฐ๊ณ 10๋ฒ์ด ๋์ด๊ฐ๋ฉด ๊ฒ์์ ์ง๋๊ฑฐ์์. ๊ทธ๋ฌ๋๊น ์ต๋์ ๋ ฅ๊ฐ(10๋ฒ)๊ณผ ๋ช๋ฒ์ ์ ๋ ฅํ๋์ง ๊ฐ์๋ฅผ ์นด์ดํธํด์ผํ๋ ๋๊ฐ์ ๋ณ์๊ฐ ํ์ํ๊ฒ ๋ค์
[ ์ฐธ๊ณ ๋ก ์๋จ์ ์์ฐGIF์๋ 3๋ฒ์ผ๋ก ํด๋์์ด์. ์ด๋ ๊ฒ ์ต๋๊ฐ๋ ๋ฐ๋ก ๋ณ์๋ก ๋นผ์ฃผ๋ฉด ์ฝ๊ฒ ์กฐ์์ด ๊ฐ๋ฅํด์ ธ ํ ์คํธํ ๋๋ ๋ ๊ฐํธํ๊ฒ ํ ์ ์๊ฒ ๋ค์. ]
์ด๋ ๊ฒ ํ์ํ ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ ์๊ฐํด ๋์๋ค ์ง์ญ ๋ณ์๋ก ์ง์ ์ ํด์ฃผ๋ฉด ๋์.
1
2
3
4
5
6
7
8
|
var targetNum; // ๋ง์ถฐ์ผ ํ๋ ์ซ์
var startStatus = false; // ์ง๊ธ์ํ
var cnt = 0; // ์
๋ ฅํ ๊ฐ์์ฒดํฌ
var maxCnt = 10; // ์ต๋ ์
๋ ฅ ๊ฐ์
// ๊ทธ์ธ ๊ฐ์ ์
๋ ฅํ ๋๋ง๋ค ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ฃผ๊ธฐ๋ก ํ์์ฃ ?
// ๊ทธ๋ด๋ ค๋ฉด ๋น๊ตํด์ ๋์์ง ๋ฎ์์ง์ ๋ํ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ๋ ค๊ณ ํ๋๋ฐ
// ์ฒ์์๋ ์ด๊ธฐํ๋ ๋ณ์๊ฐ ํ๋ ์์ผ๋ฉด ๊ทธ ์์ ์
๋ ฅ๊ฐ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๊ฒ ๋ค์.
var compare = "";
|
cs |
๊ณ ์๋ค์ ์ด๋ฏธ ์์๊ฒ ์ง๋ง[์ ๋ ๋๋ค๊ฒ์์ ๋ง๋ค๋ฉด์ ๋ง์ด ๋ฐฐ์ฐ๋ ์ค์ ๋๋คใ ],
๊ทธ์ค์ ํ๋๊ฐ logic๋ถ๋ถ๊ณผ view๋ถ๋ถ์ ๋ถ๋ฆฌํ๋ฉด ๋ ์ข์ ๊ฐ๋ฐ์ ํ ์ ์๋ค๊ณ ํด์.
๊ทธ๋์ ๊ทธ๋ ๊ฒ ๊ฐ๋ฐํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ์ง ์ ์ฉํด ๋ณด๋ฉด์ ํ๋ ค๊ณ ํฉ๋๋ค. [์ ๋๋กํ์ง๋๋ชจ๋ฅด๊ฒ ์ด์..]
์ผ๋จ!!!!
๊ฒ์์์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ง์ถฐ์ผํ ์ซ์๊ฐ ์์ฑ๋๊ณ , stage02ํ๋ฉด์ด ๋ํ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋ฐ๋จ๊ณ์ด๋ฏ๋ก console.log๋ก ๋ฏธ๋ฆฌ ์์ฑ๋ ์ซ์๋ฅผ ํ์ธํด ๋ณผ๊ป์.
- index.html
1
2
3
4
5
6
|
<div class="wrapper">
<div class="stage01">
<button class="start_btn" onClick="gameStart();">์์ํ๊ธฐ</button>
<div>
...
</div>
|
cs |
- randomGame.js
1
2
3
4
5
6
7
8
9
10
11
|
var targetNum; // ๋ง์ถฐ์ผ ํ๋ ์ซ์
var startStatus = false;
var cnt = 0;
var maxCnt = 10;
var compare = "";
function gameStart(){
targetNum = Math.floor(Math.random() * 100) + 1; // 1-100 ๊น์ง ์ซ์ ์์ฑ
console.log("๋ง์ถฐ์ผ๋ ์ซ์ : ", targetNum);
document.querySelector('.stage02').style.display = 'block';
}
|
cs |
* ๋๋ค์ซ์๋ ์ด๋ค๋ฐฉ์์ผ๋ก ์์ฑ๋๋์? ์์๋๋ถ์ ์คํต!!!!!
Math.floor๋ฅผ ํด์ฃผ๋์ด์ ๋ ์์์ ์ ์ ๊ฑฐํ๊ณ ์ ์๋ง ๋จ๊ฒ ํ๊ธฐ ์ํจ์ ๋๋ค.
Javascript์์๋ 0 ~ 1 ์ฌ์ด์ ๋๋ค๊ฐ์ด ์๊ฒจ 1 - 100๊ฐ๋ฅผ ์์ฑํด์ฃผ๊ณ ์ถ์๊ฒฝ์ฐ,
100์ ๊ณฑํ๋ค 1์ ๋ํด์ฃผ๋ฉด๋์. ์๋ฅผ๋ค์ด ๋๋ค์ซ์๊ฐ 0.852 ๊ฐ ์์ฑ๋๋ฉด 100์ ๊ณฑํด 85.2๊ฐ๋๊ณ ,
Math.floor๋ฅผํ๋ฉด 85๊ฐ ๋๊ณ +1์ ํ๋ฉด 86์ด ๋๊ฒ ์ฃ ? 0๋ถํฐ ์์ํ๋๊น 1์ ๋ํด์ฃผ๋ฉด 1์ดํ์ ๋๋ค๊ฐ์ ์๊ธฐ์ง ์์ผ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก 1๋ถํฐ 100๊น์ง์ ์ซ์๊ฐ ์๊ธฐ๊ฒ ๋ค์.
๊ทธ๋ผ ํด๋ฆญํ์๋ ๋ง์ถฐ์ผํ ์ซ์๊ฐ ์ฝ์์ ๋ํ๋๊ณ ํ๋ฉด์ด ๋ํ๋๊ฒ ๋ค์.
์ด์ input์์ ์ซ์๊ฐ์ ๋ฐ์ ์ ์ถ์ ํด๋ฆญํ๋ฉด
input๊ฐ ๊ณผ ๋ง์ถฐ์ผ๋ ์ซ์ ์ ๋น๊ตํ๋ค, ๋์์ง, ๋ฎ์์ง, ๋ง์ท๋์ง๋ฅผ ์ถ๋ ฅํด์ผ๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์ ์๊น ๋งํ logic ๋ถ๋ถ๊ณผ view๋ถ๋ถ์ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐํ ๊ป๋๋ค.
Trace ๋ผ๋ ํจ์๋ฅผ ๋ง๋ ๋ค ๊ทธ ์์ log๋ฅผ ์ถ๋ ฅํ๋ ๋ถ๋ถ์ ๋ง๋ค์ด ์ฌํ์ฉ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ถ์ ํ ๋๋ง๋ค input๋ด์ฉ์ ๋น์ฐ๊ธฐ ์ํด Traceํจ์ ์์ input์ clearํด์ฃผ๋ํจ์๋ ๋ง๋ค๊ป์.
- index.html
1
2
3
4
|
...
<button class="apply_btn" onclick="applyNum();">์ ์ถ</button>
...
|
cs |
- randomGame.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
...
function Trace() {
this.clear = function() {
document.querySelector('.log').innerHTML = ""; // input์ clear
}
this.log = function(msg) {
var ul = document.querySelector('.log'); // .log๋ฅผ ๋ถ๋ฌ์ ์ ์ฅ
var li = document.createElement('li'); // li ํ๊ทธ๋ฅผ ์์ฑ
li.innerHTML = msg; // ๋ฉ์ธ์ง๋ฅผ ์์ฑํ li ํ๊ทธ์์ ๋ฃ์
ul.appendChild(li); // ๋งค์ธ์ง๋ฅผ ๋ด์ li๋ฅผ .log์ ๋ด์ ํ ์ถ๋ ฅ
}
this.chanceLeft = function(leftChance){ // ๋ช๋ฒ ๋จ์๋์ง ์ฒดํฌ์ถ๋ ฅ
document.querySelector('.leftNum').innerHTML = leftChance + "๋ฒ";
}
}
var trace = new Trace();
function gameStart(){
...
}
function applyNum(){
// input ํ๊ทธ์ ๋ค์ด๊ฐ๋ ๊ฐ์ ๋ฐ์
var userNum = document.querySelector('input[name="num"]').value;
if(userNum == "" || userNum == undefined){ // ๊ฐ์ด ์์๋ ์์ธ์ฒ๋ฆฌ
alert('๊ฐ์ ์
๋ ฅํ์ธ์'); // alert๋์์ฃผ๊ณ
document.querySelector('input[name="num"]').focus(); // input์ ํฌ์ปค์ค
}else{
cnt++; // ์
๋ ฅํ์๋ฅผ ์ฆ๊ฐ์์ผ์ค
document.querySelector('input[name="num"]').focus(); // input์ ํฌ์ปค์ค
trace.chanceLeft(maxCnt-cnt);
if(targetNum == userNum){
compare = "๊ฐ์์! ์ถํํฉ๋๋ค! YOU WIN";
}else{
if(targetNum > userNum){
compare = "๋์์";
}else{
compare = "๋ฎ์์";
}
if(cnt === maxCnt && targetNum !== userNum){
compare = compare + "! ํ๋ ธ์ต๋๋ค! YOU LOOSE";
}
}
log = userNum+"๋ฅผ ์
๋ ฅํ์ด์, "+userNum+"๋ณด๋ค "+compare+"!";
trace.log(log);
document.querySelector('input[name="num"]').value = "";
}
}
|
cs |
๋ง์ถฐ์ผํ ์ซ์๊ฐ 54์ธ๋ฐ 50์ ์ ๋ ฅํ๋ฉด 50๋ณด๋ค ๋๋ค๊ณ ๋์ค๊ณ 60๋ณด๋ค ๋ฎ๋ค๊ณ ๋์ค๋ค์.
ํ์ง๋ง ๋ฌธ์ ์ ์ด ์๋๋ฐ์ ๋ง์ฝ 10๋ฒ์ด์ ์ ๋ ฅํ๊ฒ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์
์ด๋ฐ์์ผ๋ก ์ด๊ณผ๊ฐ ๋๋ ๊ณ์๋์์ด ๋ฉ๋๋ค.
10๋ฒ์ด ๋๋ฉด ๋์์ ํ์ง ๋ชปํ๋๋ก input์ disabled ๋ก ๋ฐ๊ฟ์ฃผ๋๋ก ํ ๊ป๋ฐ,
์๊ฐํด๋ณด๋ฉด 10๋ฒ์ด ์๋๋๋ผ๋ ์ซ์๋ฅผ ๋ง์ถ๋ฉด ๊ฒ์์ด ์ข ๋ฃ๊ฐ ๋์ผํ๋ฏ๋ก ์ญ์ ๋ฐ๋ก ๋นผ์ฃผ๋๊ฒ ์ข๊ฒ ๋ค์.
Reset์ด๋ผ๋ ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด ์ด๊ธฐ์ํ์ ์ข ๋ฃ์ํ๋ฅผ ๋ง๋ค์ด ๊ฒ์์์์ ์ด๊ธฐ์ํ๋ฅผ ๋ถ๋ฌ์ค๊ณ ,
๊ฒ์์์ ์ง๊ฑฐ๋์ด๊ฒผ์๋ ๊ฒ์์ข ๋ฃ ์ํ๋ฅผ ๋ถ๋ฌ์ค๋๋ก ํ ๊ป์.
์ถ๊ฐ์ ์ผ๋ก ํ ์คํธํ ๋ ๋งค๋ฒ ์ซ์๋ฅผ ์ ๋ ฅํ๊ณ ๋ง์ฐ์ค๋ก ์ ์ถ ๋ฒํผ์ ํด๋ฆญํ๊ธฐ ๋ถํธํ๋
input์์ Enter๋ฅผ ์ณ๋ ๋์์ด ๋๋๋ก ํด๋ณผ๊ป์.
๋ํ ์๋จ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด document.querySelector('input[name="num"]').focus(); ๋ ๊ฒฐ๊ตญ์ ๋ฐ๋ณต๋๋๊ฒ์ ์์ ์์ฃ ?
์ด๋ถ๋ถ๋ Reset() ์ ๋ฐ๋ก ๋นผ์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
- randomGame.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
function Reset() {
this.clearStatus = function(){ // ์ด๊ธฐํ์ํ
document.querySelector('.gameStartText').style.display = "block";
document.querySelector('.reStart').style.display = 'none';
document.querySelector('input[name="num"]').disabled = false;
document.querySelector('input[name="num"]').value = "";
trace.clear();
cnt = 0;
}
this.endStatus = function(){ // ์ข
๋ฃ์ํ
document.querySelector('.reStart').style.display = 'block';
document.querySelector('input[name="num"]').disabled = true;
}
this.focusInput = function(){ // ์ธํ์ ํฌ์ปค์ค
document.querySelector('input[name="num"]').focus();
}
}
var Reset = new Reset();
function gameEnd(){
document.querySelector('.stage02').style.display = "none";
document.querySelector('.reStart').style.display = "none";
}
function gameStart(){
...
}
function applyNum(){
var userNum = document.querySelector('input[name="num"]').value;
if(userNum == "" || userNum == undefined){
alert('๊ฐ์ ์
๋ ฅํ์ธ์');
Reset.focusInput(); // inputFocus๋ ๋ฐ๋ก ๋นผ๋๊น ๋ ํธ๋ฆฌํด์ก๋ค์.
}else{
cnt++;
Reset.focusInput();
trace.chanceLeft(maxCnt-cnt);
if(targetNum == userNum){
compare = "๊ฐ์์! ์ถํํฉ๋๋ค! YOU WIN";
Reset.endStatus();
}else{
if(targetNum > userNum){
compare = "๋์์";
}else{
compare = "๋ฎ์์";
}
if(cnt === maxCnt && targetNum !== userNum){
Reset.endStatus();
compare = compare + "! ํ๋ ธ์ต๋๋ค! YOU LOOSE";
}
}
log = userNum+"๋ฅผ ์
๋ ฅํ์ด์, "+userNum+"๋ณด๋ค "+compare+"!";
trace.log(log);
document.querySelector('input[name="num"]').value = "";
}
}
// input์์ ํค๊ฐ์ ๋ฐ์ Enter(keyCode=13)๋ฅผ ์ฒดํฌํด ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
function enterCheck(){
if(event.keyCode === 13){
applyNum();
}
}
|
cs |
- index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<div class="wrapper">
<div class="stage01">
<button class="start_btn" onClick="gameStart();">์์ํ๊ธฐ</button>
<div>
<div class="stage02">
<p class="gameStartText">๋ด๊ฐ์๊ฐํ๋ ์ซ์๋ฅผ ๋ง์ถฐ ๋ณด์ธ์(1๋ถํฐ 100๊น์ง)</p>
<p>
// onkeydown ์ผ๋ก ํค๋ณด๋๋ก ๋์์ ํค๊ฐ์ ๋ฐ์ ํจ์๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
<input type="number" placeholder="์)15" name="num"
onkeydown="enterCheck()"/> ์ผ๊บผ๊ฐ์์!
<button class="apply_btn" onclick="applyNum();">์ ์ถ</button>
<span>๊ธฐํ๊ฐ <strong class="leftNum"></strong>๋จ์์ด์!</span>
</p>
<ul class="log">
<!--
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋์์!</li>
<li>00๋ฅผ ์
๋ ฅํ์ด์, 00๋ณด๋ค ๋ฎ์์!</li>
์ถ๋ ฅํ๊ธฐ
-->
</ul>
<p class="reStart">
<button class="btn_restart" onClick="gameStart();">๋ค์ํ ๋์!</button>
// ๊ฒ์์ ๋ค์ ์์ํ๋๊ฒ์ ๊ฒ์์์๊ณผ ๊ฐ์ผ๋ gameStart() ํจ์๋ฅผ ๊ทธ๋๋ก ์ฐ๋ฉด๋๊ฒ ์ฃ
<button class="btn_end" onClick="gameEnd();">๊ทธ๋งํ ๋์!</button>
// ๊ทธ๋งํ๋ค๊ณ ํ์๋๋ ์ํ์ข
๋ฃ ๋ฟ๋ง์๋๋ผ ์ต์ดํ๋ฉด์ผ๋ก ๋์๊ฐ์ผํ๋ฏ๋ก gameEnd() ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๋ฌ์ต๋๋ค.
</p>
</div>
</div>
|
cs |
ํ ์คํธํด๋ณด๋ฉด ์ ๋์ํฉ๋๋ค.
'๊ฐ๋ฐ ๐พ > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TODOLIST ๋ง๋ค๊ธฐ step by step - Vanilla JavaScript (0) | 2022.03.11 |
---|---|
๋ ์์ ์ด์ธ์ ํด๋ฆญ ํ๋ฉด .. ! (feat. ์ ๋ ํธ ๋ฐ์ค ์ปค์คํ ์ฐ์ฅ์ ) (8) | 2021.10.22 |
๋ฆฌ์คํธ์ ์ ๋๋ฉ์ด์ ํจ๊ณผ์ฃผ๊ธฐ (0) | 2019.11.21 |
์๋์ผ๋ก ์์๋๋ก ์ซ์๊ฐ ๋ฃ์ด์ฃผ๊ธฐ - CSS counter (0) | 2019.11.12 |