javascript30 - 12 - Key Sequence Detection
12. Key Sequence Detection
키 입력을 받아 콘솔창에 배열로 뜨게 하고, secretCode를 입력하면 유니콘이 나오게 설정한다.
초기코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Key Detection</title>
<script type="text/javascript" src="https://www.cornify.com/js/cornify.js"></script>
</head>
<body>
<script>
</script>
</body>
</html>
head의 ` ` 가 무엇인지 확인해보니 cornify의 유니콘서비스?라고 한다.
finishied파일에서 확인해보면 cornify_add()를 이용해 랜덤한 위치에 고정 이미지를 생성시키고, 생성된 이미지를 다시 클릭하면 새로운 이미지를 생성시키는 역할을 하는것 같다.
과정
-
key event확인
window.addEventListener("keyup", (e) => { console.log(e.key); });keyup동작을 통해 어떤 키보드 입력을 수행했는지 console에서 확인해본다.
-
배열에 저장하기
let pressed = []; const secretCode = "wesbos"; window.addEventListener("keyup", (e) => { pressed.push(e.key); });array.push를 이용하여 입력한 키를 배열에 저장한다.
-
secretCode인지 확인하기
let pressed = []; const secretCode = "wesbos"; window.addEventListener("keyup", (e) => { pressed.push(e.key); pressed.splice(-secretCode.length - 1, pressed.length - secretCode.length); console.log(pressed); if (pressed.join("").includes(secretCode)) { console.log("DING DING!"); } });pressed.splice(-secretCode.length - 1, pressed.length - secretCode.length);을 이용해서 secretCode의 길이만큼의 배열 길이를 유지해준다.그리고 배열 pressed의 원소들을 한 문자열로 합쳐서 secretCode가 포함되어있는지확인한다.
-
유니콘 화면에 표시하기
if (pressed.join("").includes(secretCode)) { console.log("DING DING!"); cornify_add(); }cornify_add() 을 이용하여 유니콘을 표시한다.