일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Baekjoon
- CPP
- 루비
- Android
- boj
- Shell
- Java
- IntelliJ
- react
- OAuth
- ruby
- rubymine
- OTLanguage
- RaspberryPi
- Vane
- 개발노트
- gnuplot
- C
- GitHub
- Python
- kotlin
- jetbrains
- ruby2d
- Godot
- plugin
- JS
- maven
- gradle
- error
- Spring
- Today
- Total
목록Language/Ruby (20)
PersesTitan(페르) 기술블로그
사용법 다른 언어와는 다르게 루비에서는 replace가 아닌 sub, gsub를 이용해서 특정 문자열을 변경할 수 있습니다. 사용형태는 다음과 같이 사용합니다. sub(찾을값, 바꿀값) gsub(찾을값, 바꿀값) 찾을값에는 정규식 또는 문자열을 이용할 수 있습니다. sub와 gsub 차이 sub는 검색된 첫번째 값만이 바꿀값으로 변경되고, gsub는 변경된 모든 검색된 값이 바꿀값으로 변경됩니다. 코드 puts "ABCABC".sub("A", "*") puts "ABCABC".gsub("A", "*") 출력 *BCABC *BC*BC 응용 위 특징을 이용해서 다음과 같은 응용이 가능합니다. 숫자 제거 puts "1안2녕2하3세4요5".gsub(/\d/, "") 출력 안녕하세요
1. Gem이름 정하기 아래 들어가서 만들 이름이 존재하는지 확인하시고 진행하시면 됩니다. https://rubygems.org/ RubyGems.org | your community gem host rubygems.org 2. bundler 설치 중복된 이름이 없다면 Gem을 만들 위치에서 아래 명령어를 입력하여 기본 bundler프로젝트를 만들어 줍니다. 일부 기본 설정은 원하시는 옵션을 선택하시면 됩니다. gem install bundler bundler gem 3. 프로젝트 세팅 위 명령어를 입력하셨다면 파일이 만들어졌을 텐데 그 중 .gemspec이 있을 텐데 해당 파일에서 작업해주시면 됩니다. 다음은 코드는 예제 입니다. 기본적인 것들은 자동으로 입력이 되어 있을텐데 입력되어 있지 않은 부분은..
ruby는 팩토리얼 함수가 존재하지 않기 때문에 간단하게 팩토리얼 함수를 만들어 보는 법을 알아 보겠습니다. 팩토리얼 팩토리얼은 1부터 n까지의 값까지 값을 모두 곱한 값을 의미합니다. 5! (5팩토리얼) 일때 1 * 2 * 3 * 4 * 5의 값이 5!의 값이 되는 원리를 이용하여 팩토리얼 함수를 구현하는 방법이죠 inject ruby에는 inject라는 배열의 계산을 편하게 해주는 함수가 존재합니다. 해당 함수를 이용하여 팩토리얼을 구하는 함수를 간단하게 구할 수 있게 됩니다. 다음은 기본적인 inject를 사용하여 구현한 factorial함수 입니다. sum현재까지의 계산한 값이고, v는 현재 리스트 값 아이템 값 입니다. def factorial(n) 1.upto(n).inject { |sum, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MW5U4/btr9ywjdD8w/ypKbHVKXRytiM9wjLQkpc0/img.png)
관련된 글 [Ruby] 루비로 sin 그래프 구현하기 [Ruby] 루비로 cos 그래프 구현하기 [Ruby] 루비로 sin 그래프 구현하기 관련된 글 [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) 먼저 homebrew가 설치가 되어 있어야합니다. 그리고 아래 커맨드를 터미널에 입력해서 gnuplot를 persestitan.tistory.com [Ruby] 루비로 cos 그래프 구현하기 관련된 글 [Ruby] 루비로 sin 그래프 구현하기 [Ruby] 루비로 sin 그래프 구현하기 관련된 글 [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) 먼저 homebre..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1riV7/btr9AkJj1UR/bPyB8cqJu6tI70wy09TLCK/img.png)
관련된 글 [Ruby] 루비로 sin 그래프 구현하기 [Ruby] 루비로 sin 그래프 구현하기 관련된 글 [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) 먼저 homebrew가 설치가 되어 있어야합니다. 그리고 아래 커맨드를 터미널에 입력해서 gnuplot를 persestitan.tistory.com 풀이 sin 그래프를 이미 구현하셨다면 해당 코드에서 코드에서 sin을 cos으로 변경만하면 됩니다. 코드 require 'gnuplot' Gnuplot.open do |g| Gnuplot::Plot.new(g) do |plot| x = (-5..5).step(0.1).collect { |v| v.to_f.round 1 } y = x..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ct7Qnn/btr9sgucaOM/8C0zEuXkGYAsTmKzYJBEBk/img.png)
관련된 글 [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) [Ruby] 루비에서 그래프 구현하기 (gnuplot 설치) 먼저 homebrew가 설치가 되어 있어야합니다. 그리고 아래 커맨드를 터미널에 입력해서 gnuplot를 설치해줍니다. Homebrew 설치하기 Homebrew란? Homebrew는 ruby기반으로 구현된 맥 운영체제용 패키지 관리 persestitan.tistory.com 풀이 gnuplot가 설치가 되었다면 간단하게 sin그래프를 구현해보았습니다. x변수에 [-5.0, -4.9, -4.8, ... 4.8, 4.9, 5.0]리스트를 생성하고 y변수에는 x 리스트에 값들의 sin값을 구한 값의 리스트를 넣어 주어서 그래프를 그려보았습니다. 정확한 값을 위해 0.1씩 증가할때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cgvuqr/btr9DHXLtDD/kYp6eirGkpMHZ0lrZ6C3Kk/img.png)
먼저 homebrew가 설치가 되어 있어야합니다. 그리고 아래 커맨드를 터미널에 입력해서 gnuplot를 설치해줍니다. Homebrew 설치하기 Homebrew란? Homebrew는 ruby기반으로 구현된 맥 운영체제용 패키지 관리 애플리케이션인데요. brew를 사용하면 패키지를 쉽게 설치, 업데이트와 같은 관리가 편해지기 때문에 저는 맥을 세팅할때 가장 persestitan.tistory.com brew install gnuplot gem install gnuplot 설치 후 아래 코드를 입력하여 실행하여 정상적으로 실행이 된다면 재대로 설치가 끝난 것 입니다. 코드 require 'gnuplot' Gnuplot.open do |g| Gnuplot::Plot.new(g) do |plot| plot.data
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ba3zAj/btrVwgM0JjD/B26mgdkUrDIcR3lN2469G1/img.jpg)
[Ruby] 루비로 게임 제작해보기 6: 물체 통과 막기 [Ruby] 루비로 게임 제작해보기 6-1: 물체 통과 막기 지금까지 이동하는 로직을 구현했으므로 게임의 진행하고 끝나는 로직을 구현할려고 합니다. 코드 direction.rb 6-1코드 유지 start.rb require 'ruby2d' require_relative 'direction' check_in = lambda do |o1, os, x, y| os.each do |o| if Direction.check o1, o o1.x, o1.y = x, y end end end set title: "Game" @width = get :width @height = get :height @is_finish = false # 장애물 block = [] #..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AmW9c/btrVsnzzfVv/uBkzVBGLrvfoLnaO37mPY0/img.jpg)
[Ruby] 루비로 게임 제작해보기 6: 물체 통과 막기 (현재 입력된 방향키를 확인하기 쉽게 좌측 상단에 입력된 방향키가 보이도록 임시로 넣었습니다.) 아래와 같이 벽에 완전히 붙어있을때 움직일 수 없는데 벽에 붙어 있을때도 닿아 있는 것으로 인식되므로 움직일 수 없기 때문에 해당 부분을 해결해볼려고 합니다. 코드 이전에 사용했던 Direction모듈은 같이 사용했지만 너무 길어서 저는 따로 다른 파일로 빼서 사용하기로 했습니다. direction.rb # 방향을 정하는 모듈 module Direction LEFT = "left" RIGHT = "right" TOP = "up" UNDER = "down" def Direction.move(e, o, speed = 1) case e.key when LEF..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cceC5U/btrUIfpx8zn/zLcv5PXMOLlI129CQFSGBK/img.jpg)
[Ruby] 루비로 게임 제작해보기 4: 키보드로 이동 구현 [Ruby] 루비로 게임 제작해보기 5: 상대 위치로 이동 4번째 키보드로 이동 구현에서 이미 통과 막는 기능은 구현했었지만 사실 해당 기능은 문제가 1개 있는데요. 시작 좌표만 물체에 못들어가게 해두었기 때문에 아래와 같이 시작 좌표만 안 닿으면 통과를 할 수 있습니다. 코드 사실 크게 바뀐 내용은 없고, 코드가 길어져서 람다식에 넣어두었던 해당 좌표가 닿았는지 확인하는 로직을 Direction모듈을 이동시켰습니다. # 방향을 정하는 모듈 module Direction LEFT = "left" RIGHT = "right" TOP = "up" UNDER = "down" def Direction.move(e, o, speed = 1) case e..