Ruby 언어로 숫자 맞추기 게임을 작성해 보았다.
Python 언어의 input()  함수에 대응하는 함수로서 사용자가 컨솔에서 입력한 것을 스트링으로 받는 Ruby 언어의 함수는 gets()이다. 그런데 Ruby 언어의 간편 구문표기(syntax sugar)에 따라 소괄호 열기와 닫기를 생략하여 gets만 해도 된다. 즉 아래 소스의 14째 줄 
               sbuf = gets

               sbuf = gets()
의 간편 구문표기(syntax sugar)이다.

아래 소스의 15째 줄 guess = sbuf.to_i 는 스트링을 정수로 타입변환하는 과정이다.



소스 파일명: guessNumber01.rb

  1. #!/env/ruby
  2. #
  3. #   Filename: guessNumber01.rb
  4. #   Purpose:  Interatice game guessing a given number.
  5. #                 if CONDITION
  6. #                     ......
  7. #                 else
  8. #                     ......
  9. #                 end
  10. #   Execute: ruby guessNumber01.rb
  11. def doGuessing(num)
  12.     puts("Enter your guess:")
  13.     sbuf = gets
  14.     guess = sbuf.to_i
  15.     if guess == num
  16.         puts("You win!")
  17.         return
  18.     end
  19.     # we won't get here if guess == num
  20.     if guess < num
  21.         puts("Too low!")
  22.         doGuessing(num)
  23.     else
  24.         puts("Too high!")
  25.         doGuessing(num)
  26.     end
  27. end
  28. doGuessing(123)




실행> ruby guessNumber01.rb
Enter your guess:
111
Too low!
Enter your guess:
222
Too high!
Enter your guess:
123
You win!



위의 소스는 JRuby 1.1.6으로 실행해도 똑같이 실행된다.

실행> jruby guessNumber01.rb
Enter your guess:
111
Too low!
Enter your guess:
222
Too high!
Enter your guess:
123
You win!




Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.




Posted by Scripter
,