질문과 답변

Extra Form

변수 1~10이 고정되어 있다고 가정하고

 

변수 11을 정하고자 합니다. (변수 11은 난수로 정해지고 범위는 1~15입니다.)

 

그런데 여기서 1~10에 해당되는 각각의 수는 제외하려고 합니다..

 

질문1. 쉬운방법으로 가능한가요?

 

질문2. 제가 하는 방법은

 

loop do
$game_variables[11]=rand(15-1)+1
if $game_variables[11] != $game_variables[1] and
$game_variables[11] != $game_variables[2] and
$game_variables[11!= $game_variables[3] and
$game_variables[11!= $game_variables[4] and
(계속 해서)

$game_variables[11!= $game_variables[9] and

$game_variables[11!= $game_variables[10] and
end
end

 

하는거까지는 생각해 봤습니다. 근데 이게 스크립트에 한번에 다 써지지가 않아요..

이걸 분할해서 사용하면.. 오류가 나고요.. 

 

그래서 이것을 두가지 연산을 두면 어떨까 해서

 

a=1
loop do
$game_variables[11]=rand]=rand(15-1)+1
loop do
if $game_variables[11] != $game_variables[a]
a=a+1
if a>10
break
end
break
end
end

 

이렇게 해 봤습니다... 그런데.. 역시 안되고요..

아마 고수님들께서는 바로 아시겠지만..

변수 1~10까지 맞는지를 if구문으로 검토하려고 하니

if $game_variables[11] != $game_variables[a]
여기에 a를 넣은거고 계속 a+1이 되도록 했습니다.. a>10이 될때까지요..

 

근데.. 이 이상 어떻게 해야 하는지 모르겠습니다.. 부디 고수님들

답좀 부탁드리겠습니다.. 스크립트 s자도 모르고 있다가 여차여차 독학으로

여기까지 왔습니다... 부디 자세한 설명 부탁드립니다. ㅜ꾸벅~

 

 

Comment '6'
  • ?
    이브 2011.04.05 15:07

    a=a+1 의 위치가 if 문 속에 들어가면 안되는것도있고 break 의 위치라던가 loop 의 위치와 쓸대없는 loop 가 있내요.

    차근차근 천천히 따져보세요.

    일단 처음에는 왜 a=a+1의 위치가 잘못됬는지 생각해보시면 다른것들도 점점 눈에 들어올거예요.

    (오타는 그냥 패스했음)

  • ?
    형철스 2011.04.06 09:00

    이브님.. 일단 루프 하나는 없애봤습니다.. 그런데 a=a+1의 위치가 어디로 가야하는지..

    여러가지로 이것저것 연구해봐도 기초가 없어서.... 어떻게 해 봐도 안되네요..

     

    break를 어떻게 걸어야 하는지.. 너무 모르겠습니다.. 일단 스크립트 오류는 벗어났는데.. 검증이 이루어지지 않네요

    그냥 변수만.. 랜덤수를 넣을뿐..

    if문으로 검증해서 안되면 다시 -> 되면 다음 a 검증 -> 안되면 다시

    해서 a가 원하는 숫자가 될때까지 하려고 하는데.. 아.. 너무 어렵네요..

     

    조금만 더 가르쳐 주시면 안되겠습니까? ㅜㅜ 부탁드려요..

  • ?
    이브 2011.04.06 13:33

    일단 형철스님이 짜신대로만 손을 본다면


    a = 1

    loop do

    if a == 1

    $game_variables[11] = rand(15-1)+1

    end

    if a > 10

    break

    end

    if $game_variables[a] == $game_variables[11]

    a = 1

    else

    a = a + 1

    end

    end


    가 됩니다. 이렇게 해야 님이 원하시는 대로 작동을 하게 됩니다.
    어떤방식으로 작동하는지 한번 알아볼까요

  • ?
    이브 2011.04.06 13:44
    a를 1로 초기값을 주었습니다.
    그다음 반복문을 돌리게 되죠.
    처음에 생각을 합니다. 지금 a 의 값이 얼마지?
    a가 1이라면 변수11번에 랜덤 숫자를 넣어줍니다.
    그 다음 a의 숫자, 즉 1번 변수와 11번 변수를 비교하는군요.(중간 break는 밑에서 설명)
    만약 변수가 같다면 처음부터 다시 해야 합니다.
    그러므로 a에 숫자를 다시 1을 넣어줘서 11번변수에 랜덤수가 다시 들어가도록 만들어줍니다.
    그와함께 다시 1번변수부터 확인을 시작하겠지요.
    만약 다르다면 a를 +1 시켜주므로써 a가 2가 되지요. 그러면 반복문을 한번 돌아서 2번변수와 11번변수를 비교하게 됩니다.
    이런식으로 10번까지 다 돌고나서 a가 11이 될경우 11번변수와 11번변수를 비교하기전에 반복문을 끝내기위에 저 부분에 break를 걸어주는겁니다.
    이해가 가실지 모르겠내요.
  • ?
    이브 2011.04.06 13:52

    원리를 알았다면 좀 더 생각을 해봐야 할것이 생겼군요.

    저 스크립트는 너무 길어서 스크립트창에 모두 넣을수가 없습니다.

    더 간략하게 줄여야 합니다.


    어떤방법을 이용해야 할까요?


    반복문을 while문으로 사용하셔야 합니다.

    'while 조건' 으로 이루어 지는 while 문은 반복문과 중간 if a > 11 break end 를 한번에 실행해주는 아주 편리한 반복문입니다.

    'while'을 쓰시고 '조건' 부분에 'a < 11' 이라고 입력하게 되면 a가 11보다 작을때만 반복문을 돌게 만들어줍니다.

    이걸 사용함으로써 스크립트가 매우 많이 줄어들게 되지요.


    a = 1

    while a < 11

    if a == 1

    $game_variables[11] = rand(15-1)+1

    end

    if $game_variables[a] == $game_variables[11]

    a = 1

    else

    a = a + 1

    end

    end


    이런식으로요, 어때요? 반복문에는 이것 말고도 더 간략이 할수있는 for문 이 있지만, 이건 나중에 천천히 알아보도록 하세요.


    ※ 소스를 짜기전에 어떤식으로 작동시킬지 원리를 글씨로 쓰거나 그림과 화살표를 그려서 표현해보세요. 소스짜는일이 훨씬 더 쉬워지고 오류발생확률도 적어질거예요.

  • ?
    형철스 2011.04.11 22:57

    이브님 친절한 답변에 너무 감사드립니다~ ^^

     

    정말 고맙습니다! 큰 도움이 되었어요 감사합니다~ ^^

     

    (출장다녀와;; 뒤늦게 감사의 말씀을 올림을 용서하세요~ ㅠ)


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12444
RMVX 스킬 중 일부를 기본커맨드로 하기 2 뱀딸기 2012.02.23 2000
RMVX 스킬 성공률이 100% 로 맞춰놔도 자꾸 효과가 없었다는건 뭐죠?.. 2 OvercomE 2010.11.13 830
RMVX 스킬 사용조건 스크립트를 사용하고싶은데..에러는 안나거든요? 근데 적용이 안되요~ 액알의대가가되자 2016.02.07 109
RMVX 스킬 사용시 질문입니다... 6 니노미야 2010.09.19 924
RMVX 스킬 사용시 데미지 계산 1 헤카트 2011.01.30 1177
RMVX 스킬 사용시 나오는 문장 질문. 2 킴마유 2012.04.27 2468
RMVX 스킬 사용 조건 스크립트를 사용하고 싶은데요~~ 액알의대가가되자 2016.02.06 94
RMVX 스킬 2 마법사 2011.05.15 947
RMVX 스크립트오류 1 아카로스 2011.02.25 738
RMVX 스크립트에서 조건을 연산으로 걸 수도 있나요? 6 형철스 2011.04.04 1245
RMVX 스크립트에서 cache 75line에 오류가 뜹니다 1 아브렐라 2012.12.15 651
RMVX 스크립트에 산출된 수치를 변수로 옮기는 법이 잇나요? 3 은둔자 2010.12.27 545
RMVX 스크립트에 대해 간략히 정리된 강좌 있을까요? 3 천공의계시 2011.07.28 1261
RMVX 스크립트안돼요 1 file 어두운메이커 2011.02.09 723
RMVX 스크립트를 잘못 수정한 것 같아 질문드립니다. 5 미즈 2012.08.02 1019
RMVX 스크립트를 이용한 특정 액터의 데미지 공식 변경과 스위치 조작 뱀딸기 2012.02.12 1486
RMVX 스크립트를 이벤트로 적용시키는법 1 한월이 2014.09.18 451
RMVX 스크립트를 보고 쓰게됬는데.. 2 아키Ra 2016.05.18 154
RMVX 스크립트를 배우고 싶은데 추천받을만한 곳이 있을까요? 8 레이니콘 2012.12.12 727
RMVX 스크립트를 도중에 추가할 수 있나요? 2 우아니아랱치 2011.07.13 1117
Board Pagination Prev 1 ... 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 ... 127 Next
/ 127