질문과 답변

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 12442
RMXP 스킬 데미지 처리방법 1 file 해찬들이 2011.01.24 1090
RMVXA 스킬 데미지 방식에 변수를 설정하는법좀 알려주세요. 5 메이133 2014.01.17 912
기타 RMVXA 스킬 데미지 계산식을 노트에 적어 적용시킬 수 있는 스크립트가 존재하나요? 2 채스로루프 2023.07.02 34
RMVXA 스킬 데미지 계산식 1 겜제작광 2014.12.30 329
RMVXA 스킬 계산식에 활용할수 있는 계산식을 알고 싶습니다. 2 뿌잉뿌잉쨔응 2013.10.29 915
RMMV 스킬 계산식에 랜덤한 데미지를 입히고 싶습니다. 2 햄글 2018.01.28 213
RMVXA 스킬 계산식 쓸떄 어디까지 가능한가요? 2 아이어리이 2013.09.13 941
RMMV 스킬 A를 사용해야 B,C를 사용할수 있고 D를 사용해야 E,F를 사용할수 있는 정말귀인★ 2018.03.14 97
기본툴 사용법 RMVXA 스킬 & 아이템 목록 윈도우 크기 수정하는 법? file 나아란 2019.05.06 106
RMXP 스킬 호빵맨 2011.02.23 741
RMVX 스킬 2 마법사 2011.05.15 947
RMXP 스킨 사용하는 방법 숭아숭아 2011.12.23 2029
RMXP 스크립트폍집기에서 1 곱등이틀러 2011.10.12 2182
RMXP 스크립트중에.. 1 Combain 2010.12.24 525
스크립트 사용 RMMV 스크립트의 변수,스위치 설정 단축명령어가 있을까요? 1 wkdrn33 2019.03.28 89
스크립트와 도움말 한글화 패치 어디있나요? 1 기리다 2014.02.06 1209
RMXP 스크립트오류요 ㅠㅠ 3 콜럼비온ㄴ 2012.01.16 2006
RMVX 스크립트오류 1 아카로스 2011.02.25 738
RMXP 스크립트에서의 변수값...? 2 Krrrr7 2012.06.27 1419
RMXP 스크립트에서.... 2 Lighna 2012.03.10 1699
Board Pagination Prev 1 ... 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 ... 516 Next
/ 516