Giter Site home page Giter Site logo

start-fe's People

Contributors

c7c4ff avatar

Watchers

 avatar

start-fe's Issues

0415 '상자를 누르지 못했을 때' 조건 질문입니다!

start-fe/06/quiz7.js

Lines 25 to 30 in 42a4dbc

function start() {
clearInterval(timerId);
clearInterval(timer2);
timer2 = setInterval(miss, 3000);
timerId = setInterval(bug, 3000);
}

start-fe/06/quiz7.js

Lines 57 to 62 in 42a4dbc

function miss(){
if (life != 0){
if ($bug.style.display === 'block'){
wrong();
}
}

@niceaji

2017108262 김희범입니다. 오늘 수업 중에 질문드렸던 내용입니다! 제가 이해하고 생각한 대로 쓰느라 틀린 부분이 있을 수 있습니다 ㅠㅠ

bug 함수가 setInterval 에 의해 3초 주기로 실행되고, 상자가 있든 없든 3초마다 새로운 상자가 나와서
한 상자를 그 주기 안에 누르지 못했을 때 생명을 차감하는 내용을 넣어봤습니다.

현재 방법으로도 작동은 잘 되지만, 만약 start 함수에서 라인 28과 29의 순서를 바꾼다면 (bug와 miss의 실행 순서를 바꾼다면) 코드 한 줄이라는 근소한 실행 시간 차이가 생길 것 같았습니다. 3초 주기의 마지막에 눌렀는데 누른 게 반영되지 못하고 그냥 점수가 깎이는 상황이 발생할 수도 있을 것 같아 순서를 바꿨지만, 왠지 임시방편인 것 같습니다.

발생할 확률이 극히 낮지만 (어쩌면 없을 수도 있겠습니다.) 이런 오류를 막기 위해서 저는 놓친 것을 확인하는 조건이 bug () 함수 안에서 처리되어야 한다고 생각했습니다. 이 bug 함수가 3초 주기로 동작하니 bug 함수가 3초 동안 유지된다고 생각했고, 그래서 그 함수의 마지막 시점(다시 함수가 호출되기 직전)에 확인하면 될 것 같았습니다.

근데 '함수의 마지막 시점'이라는 조건을 떠올리기는 쉬웠지만, 구현은 못했습니다 ㅠㅠ...

제가 생각해 본 방안은 이렇습니다.

  1. 3초 주기로 실행되니 bug 함수 안에서 3초 후에 확인 조건이 실행되면 마지막 시점에 확인한다고 생각. bug 함수 마지막에 setTimeout으로 3초를 준 후 display 속성이 block 이냐 none 이냐를 파악.
    -> 딱 한 번 동작하고 이후 동작하지 않았습니다. (제가 코딩을 잘못했을 수도 있습니다... ㅠㅠ)

  2. 3초 동안 내내 조건을 확인함.
    -> 구현이 가능한지도, 구현하는 방법도 모르겠습니다...

그래서 이 bug() 내에서 처리할 때 제가 생각한 방법을 구현할 수 있을지 궁금했습니다.

어떤 함수가 특정 시간동안 동작하니 조건을 검사하는 함수도 같은 시간 혹은 더 짧은 시간동안만 지속되는 조건을 줄 수 있는 방법이 있을까요?
혹은 함수가 다시 호출된다면 그 직전(마지막 시점)에 특정 조건을 처리하는 방법이 있을까요?

질문이 좀 난해한 것 같아서 죄송합니다 ㅠㅠ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.