테스트 사이트 - 개발 중인 베타 버전입니다

달팽이레이싱 마지막 등수 (예: 7마리 선택 시 7등) 표시 안 되는 이유? 채택완료

레이싱 등수 체크 함수가 아래 부분입니다.

</p>

<p>function racing(){

    play=1;

    for(i=1;i<=set_number;i++){</p>

<p>        if(document.all['m['+i+']'].value>=set_meter && document.all['r['+i+']'].value == 0){document.all['r['+i+']'].value=cnt; cnt++;}</p>

<p>        if(document.all['m['+i+']'].value<set_meter){</p>

<p>            rand=Math.floor(Math.random()*100%set_speed);</p>

<p>            document.all['m['+i+']'].value=(document.all['m['+i+']'].value*1+rand);

            document.all['bar['+i+']'].width=document.all['m['+i+']'].value;

        }

    }</p>

<p>    if(cnt==set_number+1) raceend();

    else LQtime=setTimeout("racing()",10);

}

 

위 함수에서 

 

 

function racing(){     play=1;     for(i=1;i<=set_number;i++){

        if(document.all['m['+i+']'].value>=set_meter && document.all['r['+i+']'].value == 0){document.all['r['+i+']'].value=cnt; cnt++;}

        if(document.all['m['+i+']'].value

            rand=Math.floor(Math.random()*100%set_speed);

            document.all['m['+i+']'].value=(document.all['m['+i+']'].value*1+rand);             document.all['bar['+i+']'].width=document.all['m['+i+']'].value;         }     }

    if(cnt==set_number+1) raceend();     else LQtime=setTimeout("racing()",10); }  

 

위 코드 부가 설명을 드리자면,

r['+i+'] : 랭킹 (= 등수)

m['+i+'] : 속도 (= 달린 거리)

set_meter : 설정거리

set_number : 레이싱하는 달팽이 마리 수

LQtime : 달팽이 보폭 시간

 

예를 들어,

설정 파일에서 set_number = 7마리 설정 시,

달팽이가 설정한 거리를 넘고 현재 등수표시가 기본 0으로 된 게 있을 경우 

반복문을 통해서 차례차례 cnt (등수)를 넣어주고 cnt 변수를 1씩 증가시켜서

맨 마지막에서 등수가 설정마리수에 1마리를 더한 숫자와 같으면

종류함수를 호출해 각 달팽이에게 포인트를 쏴주는 식입니다.

 

※ cnt 변수는 1부터 시작.

 

 

왜 마지막 7을 등수에 안 넣고 바로 raceend() 함수를 호출해 버리는 걸까요? 

제가 봤을 땐 논리적으로 큰 이상이 없어보이는데.....

 

어제 하루 종일 이것만 연구하다 시간이 다 가버렸네요. ㅎ 

7이 들어가고 안 들어가고 게임하는데는 전혀 지장 없는데, 궁금해서 살 수가..ㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

이건 단순히 크롬 랜딩속도가 느려서 그런거 같습니다.

약간의 딜레이를 주니 정상적입니다.

setTimeout("raceend()",100);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

휴란드 님, 감사합니다. ^^
정말, 님 아니였으면, 오늘도 이것 갖고 씨름할 뻔 했는데....
해답을 보니, 오늘도 공칠 뻔 했네요. 제 머리론...ㅋ
수렁에서 구해주셔서 감사해요.
( ^ _____________ ^ ) ====b
이제 보니 이런 질문에 답변 주시다니....
다시 한번 감사 말씀드립니다.
( ^ ________ ^ ) ====b

질문 길이 보자마자 숨이 켁 ... ^^;;;
^^ 화이팅입니다.

댓글을 작성하려면 로그인이 필요합니다.

잘대는거 같은데요 input i가 0부터 시작되는거 아니에요?

</p>

<p>     <input type="text" name='m[1]' />

     <input type="text" name='r[1]' />

    


     <input type="text" name='m[2]' />

     <input type="text" name='r[2]' />

    


     <input type="text" name='m[3]' />

     <input type="text" name='r[3]' />

    


     <input type="text" name='m[4]' />

     <input type="text" name='r[4]' />

    


     <input type="text" name='m[5]' />

     <input type="text" name='r[5]' />

    


     <input type="text" name='m[6]' />

     <input type="text" name='r[6]' />

    


     <input type="text" name='m[7]' />

     <input type="text" name='r[7]' />

    


  <script>

    var set_meter = 100;

    var set_number = 7;

    var set_speed = 10;

    var cnt = 0;

    function racing(){

            play=1;

            for(i=1;i<=set_number;i++){

                    if(document.all['m['+i+']'].value>=set_meter && document.all['r['+i+']'].value == 0){document.all['r['+i+']'].value=cnt; cnt++;}

                    if(document.all['m['+i+']'].value<set_meter){

                            rand=Math.floor(Math.random()*100%set_speed);

                            document.all['m['+i+']'].value=(document.all['m['+i+']'].value*1+rand);

                    }

            }

            if(cnt==set_number+1) raceend();

            else LQtime=setTimeout("racing()",10);

    }</p>

<p>    function raceend(){

    

        alert(1);</p>

<p>    }</p>

<p>    racing();

    </script>

 

결과

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

휴란드 님 관심 갖고 시간 내 답변해주셔서 감사합니다. ^^

제가 봐도 함수엔 이상이 없어보이는데,
설치해서 테스트해보시면 아시겠지만 마지막 등수가 안 찍혀용.

https://codepen.io/sinbi/pen/aXgbLB

위 좌표 접속해서 새로고침해보시면,
크롬에서 7이 안찍히다가 얼럿 확인 버튼을 누르면 그제야 7이 들어가요.
실제게임에선 얼럿에서 확인 누르면 새 게임으로 넘어가 7을 못 봐여.

PS.
i값은 1부터 시작.
for(i=1;i<=set_number;i++){

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고