[javaScript] 승부차기 게임 만들기 - 3
돌딤
2018. 8. 19. 22:10
전에 스크립트 에서 jQuery 이용해서 코드를 조금 더 간결하게 만들수 있을 것 같아 jQuery 이용하고 새로운 기능을 추가했다.
아무래도 기본 자바스크립트에서 문법인 documet.getElementById() , innerHtml 같이 길어질수 밖에 없다.
jQuery의 '$' 의 핵심 기능은 원하는 DOM 엘리먼트를 셀렉트 하는 기능 이다. 아이디 같은 경우에도
$('#kkr') 이렇게 짧게 표현 할 수 있는데 사용하지 않을 이유가 없다.
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | var korea = { score : 0, percent : 0.75 }; var japen = { score : 0, percent : 0.7 }; var soccerGame = { jpScoreNumber: 5, krScoreNumber: 5 } var krTeam = ["손흥민","조현우","황희찬","이승우","박지성"]; function onKoreaShoot(){ if (Math.random() < korea.percent) { screen("한국팀 : " + krTeam[0] + "선수가 슛에 성공했습니다."); // 스크린 인자값에 들어갈 상황 텍스트 updateKorScore(); }else{ screen("한국팀 : " + krTeam[0] + " 선수가 슛에 실패했습니다."); // 스크린 인자값에 들어갈 상황 텍스트 } var $krScoreNumberElem = $('#kr-number') soccerGame.krScoreNumber --; $krScoreNumberElem.html(soccerGame.krScoreNumber); disabledKrButton(true); disabledJpButton(false); } function onJapenShoot(){ krTeam.shift(); if (Math.random() < japen.percent ) { screen("일본팀이 슛에 성공했습니다.");// 스크린 인자값에 들어갈 상황 텍스트 updateJpScore(); } else { screen("일본팀이 슛에 실패했습니다.");// 스크린 인자값에 들어갈 상황 텍스트 } var $jpScoreNumberElem = $('#jp-number'); soccerGame.jpScoreNumber --; $jpScoreNumberElem.html(soccerGame.jpScoreNumber) ; disabledKrButton(false); disabledJpButton(true); if(soccerGame.jpScoreNumber === 0){ if(korea.score > japen.score){ screen("한국팀이 승리했습니다."); }else if(korea.score < japen.score){ screen("일본팀이 승리했습니다.") }else{ screen("비겼습니다."); } disabledKrButton(true); disabledJpButton(true); } } function screen(s){ var $textElem = $('#score-text'); $textElem.html(s); } function updateKorScore(){ var $korElem = $('#kr-score'); korea.score += 1; // 슛이 성공하면 한국 스코어 1 증가 . $korElem.html(korea.score); } function updateJpScore(){ var $jpElem = $('#jp-score'); japen.score += 1; // 슛이 성공하면 한국 스코어 1 증가 . $jpElem.html(japen.score); } function disabledKrButton(flag){ $('.btn-korea').prop('disabled', flag); } function disabledJpButton(flag){ $('.btn-japen').prop('disabled', flag); } $(function(){ disabledJpButton(true) disabledKrButton(true) screen(3); window.setTimeout(function(){ screen(2); window.setTimeout(function(){ screen(1); window.setTimeout(function(){ screen('한국팀 부터 시작합니다. !'); disabledKrButton(false) }, 1000); }, 1000); }, 1000); }); | cs |
전과 비교하면 DOM을 셀렉트하는 부분에서 만 바뀌고 나머지는 거의 바뀌지 않았다. innerHtml 같은경우도 jQuery의 html 함수를
이용했다. 그리고 새로운 기능을 추가했는데. 하단에 DOMContentLoaded 이벤트를 보면 처음에 버튼을 비활성화 해놓고
상황판에 3 2 1 출력하고 한국팀 부터 시작하는걸 알려주고 있다. 그리고 한국팀 버튼은 활성화되고 게임을 시작할 수 있다.
반응형
'JavaScript' 카테고리의 다른 글
Eslint 초기 설정하기 (0) | 2021.02.01 |
---|---|
Vue.js 인스턴스 & 컴포넌트 (0) | 2018.09.09 |
Ajax 와 JSON 서버와 통신하기 (0) | 2018.08.23 |
[JavaScript] 승부차기 게임 만들기 - 2 (0) | 2018.08.14 |
[JavaScript] 승부차기 게임 만들기 (0) | 2018.08.10 |