level16[old]

2022. 3. 16. 22:07Site/Webhacking.kr

오늘은 level16을 풀어보겠습니다

공부를 하는 입장이니 틀린것이 있더라도 양해부탁드리겠습니다


level16을 실행시키니 이상한 별그림 2개가 보였습니다

어떠한 키를 눌러도 작동이 되질않더군요

소스코드를 확인해 보았습니다

body테그안에 onkeypress가 보이는데 키값을 누를때 이벤트가 발생한다고합니다. 즉 키를 누르면 mv함수가 실행되어 keyCode가 입력되는것 같습니다. cd에 keyCode값을 전달받아 먼저 kk함수를 실행시키네요

kk함수에서  Math.random()*900000[최대값]을 통해 난수를 생성하고 x를 left, y를 top으로 설정한거 같습니다

cd==100이면 left[x]를 parseInt를 통해 10진수로 변환해 +50을 해주어 왼쪽으로 이동시켜주는것 같습니다 

cd==97이면 left[x]를 parseInt를 통해 10진수로 변환해 -50을 해주어 오른쪽으로 이동시켜주는것 같습니다 

cd==119이면 top[y]을 parseInt를 통해 10진수로 변환해 -50을 해주어 위쪽으로 이동시켜주는것 같습니다 

cd==115이면 top[y]을 parseInt를 통해 10진수로 변환해 +50을 해주어 아래쪽으로 이동시켜주는것 같습니다 

cd==124일때 특정 페이지로 이동하는거 같은데 주석에 do it!이라는 힌트가 있는가 있는걸로 보아 cd를 124로 맞춰주어야 될것같습니다

그런데 키를 입력할때 마다 124가 한방에 가는게 아니라 1 2 4가 한키씩 입력이 되므로 아마도 아스키 코드를 활용해야 될 것 같습니다

아스키 코드로는 100=d, 97=a, 119=w, 115=s, 124=|[파이프]입니다

개발자 도구를 실행하여 값을 변경하여 소스코드를 수정했습니다

값을 변경해주고 wsda를 눌러보니 별이 값 방향대로 움직이면서 *을 출력해 줍니다

그리고 |[파이프]를 입력하니 클리어 되었습니다

 

 

cf) onload : onkeypress처럼 body테그에 이용됨. 페이지가 로드된후 실행될 곳 [-> body가 script보다 먼저실행기때문에 script 미구현시 오류남 -> script부분이 구현이 다 안되도 오류방지]

  

 

 

 

reference check : https://www.w3schools.com/jsref/event_onkeypress.asp

 

'Site > Webhacking.kr' 카테고리의 다른 글

level18[old]  (0) 2022.03.18
level26[old]  (0) 2022.03.17
level15[old]  (0) 2022.03.15
level14[old]  (0) 2022.03.15
Level17[old]  (0) 2022.03.15