질문과 답변

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 12393
한글 패치 RMXP rpg xp 한글패치 후 글자가 나오질 않습니다 1 file 핫핑세일 2019.12.04 279
한글 패치 RMVXA RPG VX ACE 한글 패치 3 채토 2019.02.12 798
한글 패치 RM2k 스팀 알만툴 2k는 한글패치가 없나여? 2 태연천사 2019.04.01 317
한글 패치 RMVXA Translator++ invalid multibyte char (utf-8) 오류 (영어겜임) file 진영삼 2019.05.02 428
한글 패치 RMVXA VX Ace툴 스팀 버전 한글패치는 없는 건가요? 자유와바람 2019.11.07 317
한글 패치 RMVXA 지원하지 않는 조작 1 청빛날개 2020.02.04 94
한글 패치 RMXP 스팀 알만툴XP 한글패치 관련 질문입니다 으으으으으으 2020.02.25 339
한글 패치 기타 SRC나 DNML 유저팬픽시나리오MOD제작툴 한글화 하시는분은 없나요? 1 모드좋아 2020.02.27 212
한글 패치 RMVXA RPG MAKER VX ACE 한글패치 관련 문의드립니다ㅠ 2 쇠창살 2020.03.02 456
한글 패치 RMVX vx 한글패치 어떻게 해야 하나요 ㅠㅠㅠ 2 얄라셩 2020.06.05 279
한글 패치 RMXP RPG XP 스팀 한글패치 최신 버전은 없나요? 1 일리브 2020.11.14 658
한글 패치 RM2k3 2003 게임의 글자가 특수문자로 출력됩니다. 1 file 우주신유니콘 2021.03.20 297
한글 패치 RMVXA RPG Maker VX Ace 한글 출력? 1 ikmyung 2021.05.17 302
한글 패치 기타 알만툴 2k 스팀판은 한글패치가 없나요? 김기차 2023.08.28 48
한글 패치 RM2k RM2k의 스팀 한글패치 다크크리에이터 2024.01.27 23
플러그인 추천 RMMV MV 인벤토리 변경하는 플러그인이 있을까요? 2 머리큰두두 2023.09.19 60
플러그인 추천 RMMV 지도의 특정 좌표를 한번에 찾아가는 플러그인은 없을까요? 7 겐마 2020.08.22 123
플러그인 추천 RMMV npc 이동 1 코기 2020.02.09 89
플러그인 추천 RMMV MV에서 대각선이동이 가능한가요? (8방향이동) 6 믕믱이 2020.03.12 770
플러그인 추천 RMMV 이런 플러그인인데 혹시 알고있는 사람 있습니까??? 2 file 호구랑 2019.03.02 240
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 83 Next
/ 83