RPG Maker와 Ruby로
코딩 시작하기
Day 2
수치(숫자)
• 정수형(Integer)
• 실수형(Float)
3 # 정수
52 # 정수
-99 # 정수
1.5 # 실수(부동 소수점수)
3.0 # 실수(부동 소수점수)
> p 1+1
=> 2
> p 10-3
=> 7
> p 7*5
=> 35
> p 24/4
=> 6
>
우선 순위
• 기본적으로 사칙연산의 우선순위와 같다.
• * 과 / 은 + 과 - 보다 먼저 계산한다.
• 괄호 ( ) 안의 식을 우선 평가한다.
> p 2*2+3*4
=> 16
> p 2*(2+3)*4
=> 40
> p 2*(2+3*4)
=> 28
>
소수점 이하 계산
> p 15/4
=> 3
> p 15.0/4
=> 3.75
> p 15/4.0
=> 3.75
>
나머지 계산
> p 14%4
=> 2
> p 13%4
=> 1
> p 12%4
=> 0
>
제곱 계산
> p 2**4
=> 16
>
변수(variable)
• 변할 수 있는 값에 이름을 붙인 것
• RPG Maker 이벤트 커맨드의 "변수"가 수치값만을 담을 수 있는
것과는 달리, 루비에서의 변수는 여러 가지 형태의 데이터 (수치, 문
자열(String), 커스텀 클래스의 인스턴스 등)를 담을 수 있는 포괄
적인 개념이다. (사실 이벤트 커맨드의 변수는 스크립트의
$game_variables 글로벌 변수 (Game_Variables 클래스의 인
스턴스)에 보관되어 있다는 사실!)
• 로컬 변수
• 인스턴스 변수
• 글로벌 변수
변수의 이름을 지을 때는, 다음 사항에 유의하여야 한다:
1. 맨 처음 문자가 영어 소문자 또는 _ (언더 바)인 것. (사실 한글도 가능
하나 기존 코드와의 일관성을 유지하기 위해 추천하고 싶지는 않다. 쓰
지 말라는 얘기는 아님.)
2. 두번째 이후 문자가 영문자, 숫자 또는 _ (언더 바)인 것.
3. Ruby 예약어* 제외.
* Ruby 예약어: alias, and, begin, break, case, class, def, do, else,
elsif, end, ensure, false, for, if, in, module, next, nil, not, or,
redo, rescue, retry, return, self, super, then, true, undef,
unless, until, when, while, yield
(네이밍에 관해 참고하면 좋은 내용: https://github.com/dalzony/
ruby-style-guide/blob/master/README-koKR.md)
대입과 참조
> x=3
=> 3
> y=4
=> 4
> p x+y
=> 7
>
반드시 선 대입 후 참조
루비에서는 zzz 변수를 참조하기 전에는 zzz 변수에 반드시 무언가를 먼저 대입해야 한다.
(옳지 않은 예)
> p zzz
=> #<NameError: undefined local variable or method `zzz' for
main:Object>
>
(옳은 예)
> zzz=5
=> 5
> p zzz
=> 5
>
자기 대입
> x=1
=> 1
> x+=7
=> 8
> x-=3
=> 5
> x*=2
=> 10
> p x
=> 10
>
/=, %= 도 사용할 수 있음
글로벌 변수
• 로컬 변수와 달리 범위에 구애받지 않고 아무데서나 대입
및 참조가 가능함
• 루비에서는 $global 과 같이 이름 앞에 $ 문자를 붙이면 글
로벌 변수가 된다.
• 주의: 여러 곳에서 같은 변수에 대입/참조하는 경우 자칫 결
과를 예측하기 힘든 코드를 낳을 수 있으므로 되도록이면 사
용을 자제하도록 하자.
문자열(String)
> a="RPG MAKER VX ACE"
=> "RPG MAKER VX ACE"
> p a
=> "RPG MAKER VX ACE”
> a="RPG"
=> "RPG"
> b="MAKER VX ACE"
=> "MAKER VX ACE"
> p a+b
=> "RPGMAKER VX ACE"
> a="RPG MAKER VX ACE"
=> "RPG MAKER VX ACE"
> p a*2
=> "RPG MAKER VX ACERPG MAKER VX ACE"
>
Backslash 기법
문자열 내 Backslash(백 슬래쉬) 기법을 사용하기 위해서는 ' '가
아닌 " " 를 이용하도록 하자.
> a = "RPG MAKER VX ACE"
=> "RPG MAKER VX ACE"
> b = "MADE BY ENTERBRAIN"
=> "MADE BY ENTERBRAIN"
> print a+"n"+b
RPG MAKER VX ACE
MADE BY ENTERBRAIN=> nil
>
식 전개
문자열 내 식 전개를 사용하기 위해서는 ' '가 아닌
" " 를 이용하도록 하자.
> game = "RPG"
=> "RPG"
> p "#{game} MAKER VX ACE"
=> "RPG MAKER VX ACE"
>
Boolean형(true/false)
> p ("hello"=="hello")
=> true
> p ("HELLO"=="hello")
=> false
> p (3+1==3+5)
=> false
> p (3+1==2+2)
=> true
>
조건 분기
• 주어진 조건식의 결과 (참 또는 거짓)에 따라 각각 다른 처리
를 하기 위해 사용된다
• 이벤트 커맨드의 "조건 분기"와 같은 원리
비교 연산자
• 두 식을 비교하여 조건식으로 표현할 때
• == 같다
• != 같지 않다
• < 작다
• > 크다
• <= 작거나 같다
• >= 크거나 같다
= 이 아니다!
혼동 주의할 것.
논리 연산자
• and ("그리고", 양쪽의 식이 둘 다 성립하면 참(true), 그렇지 않으면
거짓(false)이 된다)
• && and와 같은 뜻
• or ("또는", 양쪽의 식 둘 중 하나라도 성립하면 참(true), 그렇지 않
으면(두개의 식 모두 성립하지 않는 경우) 거짓(false)이 된다)
• || or와 같은 뜻
• not ("아니다", 바로 뒤의 식이 성립하지 않으면 참(true), 그렇지 않
으면(성립하면) 거짓(false))
• ! not과 같은 뜻
> p (100>77 and 1+1==2)
true
=> true
> p (100>77 && 1+1==2)
true
=> true
> p (1+1==3 or 2+2==3)
false
=> false
> p (1+1==3 || 2+2==3)
false
=> false
> p (not true)
false
=> false
> p (!true)
false
=> false
조건 분기 - if문
> a=7
=> 7
> if a>=10
.. print "big"
.. elsif a>=5
.. print "medium"
.. else
.. print "small"
.. end
medium
=> nil
if 조건1
실행_내용
elsif 조건2
실행_내용
elsif 조건3
실행_내용
(...)
else
실행_내용
end
조건 분기 - unless
> a=7
=> 7
> unless a>=10
.. print "small"
.. end
small
=> nil
unless 조건
실행_내용
end
조건 분기 - case
> a=0
=> 0
> case a
.. when 0
.. print "good"
.. when 1
.. print "normal"
.. when 2
.. print "bad"
.. end
good
=> nil
case 변수
when 값1
실행_내용
when 값2
실행_내용
when 값3
실행_내용
end
조건 분기 - 삼항연산자(?:)
> a=3
=> 3
> p (a>=10 ? "big" : "small")
"small"
=> "small"
조건식 ? 참일 때의 값 : 거짓일 때의 값
Quiz
• 루비 변수와 조건문을 사용하여 가위 바위 보 게임을 만들
어 보세요.

RPG Maker와 Ruby로 코딩 시작하기 Day 2

  • 1.
    RPG Maker와 Ruby로 코딩시작하기 Day 2
  • 2.
  • 3.
    3 # 정수 52# 정수 -99 # 정수 1.5 # 실수(부동 소수점수) 3.0 # 실수(부동 소수점수)
  • 4.
    > p 1+1 =>2 > p 10-3 => 7 > p 7*5 => 35 > p 24/4 => 6 >
  • 5.
    우선 순위 • 기본적으로사칙연산의 우선순위와 같다. • * 과 / 은 + 과 - 보다 먼저 계산한다. • 괄호 ( ) 안의 식을 우선 평가한다.
  • 6.
    > p 2*2+3*4 =>16 > p 2*(2+3)*4 => 40 > p 2*(2+3*4) => 28 >
  • 7.
    소수점 이하 계산 >p 15/4 => 3 > p 15.0/4 => 3.75 > p 15/4.0 => 3.75 >
  • 8.
    나머지 계산 > p14%4 => 2 > p 13%4 => 1 > p 12%4 => 0 >
  • 9.
    제곱 계산 > p2**4 => 16 >
  • 10.
    변수(variable) • 변할 수있는 값에 이름을 붙인 것 • RPG Maker 이벤트 커맨드의 "변수"가 수치값만을 담을 수 있는 것과는 달리, 루비에서의 변수는 여러 가지 형태의 데이터 (수치, 문 자열(String), 커스텀 클래스의 인스턴스 등)를 담을 수 있는 포괄 적인 개념이다. (사실 이벤트 커맨드의 변수는 스크립트의 $game_variables 글로벌 변수 (Game_Variables 클래스의 인 스턴스)에 보관되어 있다는 사실!) • 로컬 변수 • 인스턴스 변수 • 글로벌 변수
  • 11.
    변수의 이름을 지을때는, 다음 사항에 유의하여야 한다: 1. 맨 처음 문자가 영어 소문자 또는 _ (언더 바)인 것. (사실 한글도 가능 하나 기존 코드와의 일관성을 유지하기 위해 추천하고 싶지는 않다. 쓰 지 말라는 얘기는 아님.) 2. 두번째 이후 문자가 영문자, 숫자 또는 _ (언더 바)인 것. 3. Ruby 예약어* 제외. * Ruby 예약어: alias, and, begin, break, case, class, def, do, else, elsif, end, ensure, false, for, if, in, module, next, nil, not, or, redo, rescue, retry, return, self, super, then, true, undef, unless, until, when, while, yield (네이밍에 관해 참고하면 좋은 내용: https://github.com/dalzony/ ruby-style-guide/blob/master/README-koKR.md)
  • 12.
    대입과 참조 > x=3 =>3 > y=4 => 4 > p x+y => 7 >
  • 13.
    반드시 선 대입후 참조 루비에서는 zzz 변수를 참조하기 전에는 zzz 변수에 반드시 무언가를 먼저 대입해야 한다. (옳지 않은 예) > p zzz => #<NameError: undefined local variable or method `zzz' for main:Object> > (옳은 예) > zzz=5 => 5 > p zzz => 5 >
  • 14.
    자기 대입 > x=1 =>1 > x+=7 => 8 > x-=3 => 5 > x*=2 => 10 > p x => 10 > /=, %= 도 사용할 수 있음
  • 15.
    글로벌 변수 • 로컬변수와 달리 범위에 구애받지 않고 아무데서나 대입 및 참조가 가능함 • 루비에서는 $global 과 같이 이름 앞에 $ 문자를 붙이면 글 로벌 변수가 된다. • 주의: 여러 곳에서 같은 변수에 대입/참조하는 경우 자칫 결 과를 예측하기 힘든 코드를 낳을 수 있으므로 되도록이면 사 용을 자제하도록 하자.
  • 16.
    문자열(String) > a="RPG MAKERVX ACE" => "RPG MAKER VX ACE" > p a => "RPG MAKER VX ACE” > a="RPG" => "RPG" > b="MAKER VX ACE" => "MAKER VX ACE" > p a+b => "RPGMAKER VX ACE" > a="RPG MAKER VX ACE" => "RPG MAKER VX ACE" > p a*2 => "RPG MAKER VX ACERPG MAKER VX ACE" >
  • 17.
    Backslash 기법 문자열 내Backslash(백 슬래쉬) 기법을 사용하기 위해서는 ' '가 아닌 " " 를 이용하도록 하자. > a = "RPG MAKER VX ACE" => "RPG MAKER VX ACE" > b = "MADE BY ENTERBRAIN" => "MADE BY ENTERBRAIN" > print a+"n"+b RPG MAKER VX ACE MADE BY ENTERBRAIN=> nil >
  • 18.
    식 전개 문자열 내식 전개를 사용하기 위해서는 ' '가 아닌 " " 를 이용하도록 하자. > game = "RPG" => "RPG" > p "#{game} MAKER VX ACE" => "RPG MAKER VX ACE" >
  • 19.
    Boolean형(true/false) > p ("hello"=="hello") =>true > p ("HELLO"=="hello") => false > p (3+1==3+5) => false > p (3+1==2+2) => true >
  • 20.
    조건 분기 • 주어진조건식의 결과 (참 또는 거짓)에 따라 각각 다른 처리 를 하기 위해 사용된다 • 이벤트 커맨드의 "조건 분기"와 같은 원리
  • 21.
    비교 연산자 • 두식을 비교하여 조건식으로 표현할 때 • == 같다 • != 같지 않다 • < 작다 • > 크다 • <= 작거나 같다 • >= 크거나 같다 = 이 아니다! 혼동 주의할 것.
  • 22.
    논리 연산자 • and("그리고", 양쪽의 식이 둘 다 성립하면 참(true), 그렇지 않으면 거짓(false)이 된다) • && and와 같은 뜻 • or ("또는", 양쪽의 식 둘 중 하나라도 성립하면 참(true), 그렇지 않 으면(두개의 식 모두 성립하지 않는 경우) 거짓(false)이 된다) • || or와 같은 뜻 • not ("아니다", 바로 뒤의 식이 성립하지 않으면 참(true), 그렇지 않 으면(성립하면) 거짓(false)) • ! not과 같은 뜻
  • 23.
    > p (100>77and 1+1==2) true => true > p (100>77 && 1+1==2) true => true
  • 24.
    > p (1+1==3or 2+2==3) false => false > p (1+1==3 || 2+2==3) false => false
  • 25.
    > p (nottrue) false => false > p (!true) false => false
  • 26.
    조건 분기 -if문 > a=7 => 7 > if a>=10 .. print "big" .. elsif a>=5 .. print "medium" .. else .. print "small" .. end medium => nil if 조건1 실행_내용 elsif 조건2 실행_내용 elsif 조건3 실행_내용 (...) else 실행_내용 end
  • 27.
    조건 분기 -unless > a=7 => 7 > unless a>=10 .. print "small" .. end small => nil unless 조건 실행_내용 end
  • 28.
    조건 분기 -case > a=0 => 0 > case a .. when 0 .. print "good" .. when 1 .. print "normal" .. when 2 .. print "bad" .. end good => nil case 변수 when 값1 실행_내용 when 값2 실행_내용 when 값3 실행_내용 end
  • 29.
    조건 분기 -삼항연산자(?:) > a=3 => 3 > p (a>=10 ? "big" : "small") "small" => "small" 조건식 ? 참일 때의 값 : 거짓일 때의 값
  • 30.
    Quiz • 루비 변수와조건문을 사용하여 가위 바위 보 게임을 만들 어 보세요.