start-fe's People
start-fe's Issues
0415 '상자를 누르지 못했을 때' 조건 질문입니다!
Lines 25 to 30 in 42a4dbc
Lines 57 to 62 in 42a4dbc
2017108262 김희범입니다. 오늘 수업 중에 질문드렸던 내용입니다! 제가 이해하고 생각한 대로 쓰느라 틀린 부분이 있을 수 있습니다 ㅠㅠ
bug 함수가 setInterval 에 의해 3초 주기로 실행되고, 상자가 있든 없든 3초마다 새로운 상자가 나와서
한 상자를 그 주기 안에 누르지 못했을 때 생명을 차감하는 내용을 넣어봤습니다.
현재 방법으로도 작동은 잘 되지만, 만약 start 함수에서 라인 28과 29의 순서를 바꾼다면 (bug와 miss의 실행 순서를 바꾼다면) 코드 한 줄이라는 근소한 실행 시간 차이가 생길 것 같았습니다. 3초 주기의 마지막에 눌렀는데 누른 게 반영되지 못하고 그냥 점수가 깎이는 상황이 발생할 수도 있을 것 같아 순서를 바꿨지만, 왠지 임시방편인 것 같습니다.
발생할 확률이 극히 낮지만 (어쩌면 없을 수도 있겠습니다.) 이런 오류를 막기 위해서 저는 놓친 것을 확인하는 조건이 bug () 함수 안에서 처리되어야 한다고 생각했습니다. 이 bug 함수가 3초 주기로 동작하니 bug 함수가 3초 동안 유지된다고 생각했고, 그래서 그 함수의 마지막 시점(다시 함수가 호출되기 직전)에 확인하면 될 것 같았습니다.
근데 '함수의 마지막 시점'이라는 조건을 떠올리기는 쉬웠지만, 구현은 못했습니다 ㅠㅠ...
제가 생각해 본 방안은 이렇습니다.
-
3초 주기로 실행되니 bug 함수 안에서 3초 후에 확인 조건이 실행되면 마지막 시점에 확인한다고 생각. bug 함수 마지막에 setTimeout으로 3초를 준 후 display 속성이 block 이냐 none 이냐를 파악.
-> 딱 한 번 동작하고 이후 동작하지 않았습니다. (제가 코딩을 잘못했을 수도 있습니다... ㅠㅠ) -
3초 동안 내내 조건을 확인함.
-> 구현이 가능한지도, 구현하는 방법도 모르겠습니다...
그래서 이 bug() 내에서 처리할 때 제가 생각한 방법을 구현할 수 있을지 궁금했습니다.
어떤 함수가 특정 시간동안 동작하니 조건을 검사하는 함수도 같은 시간 혹은 더 짧은 시간동안만 지속되는 조건을 줄 수 있는 방법이 있을까요?
혹은 함수가 다시 호출된다면 그 직전(마지막 시점)에 특정 조건을 처리하는 방법이 있을까요?
질문이 좀 난해한 것 같아서 죄송합니다 ㅠㅠ
0415 실험
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.