질문과 답변

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 12446
기타 RMMV 리소스팩 적용 1 뿔님 2020.06.28 131
기타 RM2k ultimate2009 다운받아서 적용 좀 시키려니까 안 됩니다...(rpg maker 2k value!+ 씁니다) 3 굶주린아기늑대 2020.07.02 143
기타 RMMV 캐릭터 대사를 이런 말풍선 형식으로 나오게 하고 싶은데... 1 file 레기우스州 2020.07.03 633
기타 RMVXA 혹시 제 파일안에 빠진게있나요? 2 file 바퀴벌레의질긴생명력 2020.07.19 90
기타 기타 쯔꾸르 내부에 있는 대사나 스킬 이름 등 설명란 스크립트쪽을 추출하는 프로그램? 쯔꾸르 장치가 있었는데 유통기한만료 2020.08.01 424
기타 RMVXA 메시지 출력 부분 x좌표를 변경하고싶어요! file 당고당고 2020.08.07 44
기타 기타 캐릭터가 게임 창을 넘어가서 바탕화면으로도 갈 수 있는 연출 방법 2 off_limit 2020.08.04 236
기타 RMVX 캐릭터 대신 방어해주는법 4 걍사람 2022.01.10 225
기타 RMVX 공격 메세지 바꾸는법 2 걍사람 2022.01.08 182
기타 기타 vx ace에서 플에이어가 직접 커스터마이징 할수 있는 기능이 있을까요? file 묘윤 2023.04.08 40
기타 RMMV 전투에서 싸우는 아군을 5명 이상으로 하고싶습니다아. 2 레기우스州 2020.08.09 60
기타 RMMV 특정스탯이 되면 죽은것으로 처리하고 싶습니다. 2 JDG 2020.08.18 50
기타 RMMV 직접 만든 애니메이션 적용시 배율에 따른 화질 문제 file 깡토 2020.08.18 95
기타 RMMV 상태이상 발동 확률을 변수나 캐릭터 능력치 등으로 결정하고 싶습니다. 레기우스州 2020.08.27 36
기타 RMVXA 해상도 크기 조절 후 메뉴창이 어딘가 이상합니다... file 건소금 2020.11.06 264
기타 RMMV mv 기본 게임 창? 변경방법 file .-. 2020.11.04 552
기타 RMMV 컷신스킵 3 무명시절 2020.08.30 88
기타 RMMV mv로 밤효과내는방법이 없을까요 2 회늑 2020.08.30 135
기타 RMMV 제발 도와주세요 진짜 급합니다 파일을 불러올 수가 없습니다 1 초보노인 2020.09.06 134
기타 기타 도트 배경이 투명 적용이 안됩니다 5 순수매실주 2020.09.17 171
Board Pagination Prev 1 ... 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 ... 83 Next
/ 83