질문과 답변

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
RMVXA VXA로 만든 솔로 게임을 온라인상에 구축할수있나요? 1 ongirl 2015.06.10 197
RMVXA VXA는 이벤트가 다른 이벤트 위로 못지나 가나요? 1 Ripper 2015.07.23 149
제작툴 구매 기타 vxa가 좋아요 mv가 좋아요? 1 망둥어맛치킨 2019.11.07 292
RMVXA vxace질문좀요 3 퍼러진 2012.01.01 1914
RMVXA vxace의 파티체인저 비밀의회원 2018.06.15 68
RMVXA vxace에서 패시브 스킬을 만들수 있나요? 6 뿌잉뿌잉쨔응 2013.06.23 826
RMVXA vxace에서 탈것에관한것들좀 알려주세요 4 game 光 ㅋㅋ 2013.01.06 798
RMVXA vxace에서 타격실패없애는 방법좀 가르쳐주세요 2 DiperiAn 2012.07.27 1858
턴제 전투 RMMV VXACE에서 사용된 전투방식을 MV에서 사용할수 있나요? 1 QUzc 2019.05.04 68
스크립트 사용 RMVXA VXACE에서 2방향, 4방향의 동시 사용 믕믱이 2019.07.22 50
RMVXA VXACE는 글꼴을 어디서 바꾸죠? 2 Leonis 2013.11.02 1163
vxace는 100프로 한글화가 된상태인가요? 2 촤PD 2014.01.24 912
VXAce) 아이템이름, 직업이름 등 한글패치는 따로해야하나요?? 3 file hghg00 2014.10.19 880
RMVXA vxace 해상도를 기본제한수치보다 더크게 올리고 싶습니다 5 지이스 2014.05.04 977
기본툴 사용법 RMVXA VXACE 텍스트 소리 어떻게 나게 하나요? rmqqoddl 2020.11.15 155
RMVXA VXace 제작자 성님들 도와주십시오.(물건을 정확한 위치에 옮겨놓으면 인식되는거.) 5 nimi070 2018.12.07 88
RMVXA VXACE 전투스크립트 중에서... 작은영웅 2012.03.11 2433
RMVXA vxace 이벤트가 자꾸 나옵니다 1 아고 2018.01.25 79
RMVXA VXace 스크립트 에러 2 rmkroar 2014.02.28 777
RMVXA VXAce 선택지표시 질문 2 file 올레올레 2014.07.28 1027
Board Pagination Prev 1 ... 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 ... 516 Next
/ 516