Juwan Park :: Juwan Park

2차원 배열 처리 예제

2차원 배열 처리 예제

2차원 배열 예제입니다.루비에서는 aa = Array.new {Array.new} 이런 식으로 선언하면 2차원 배열이 할당됩니다. 물론 같은 방법으로 aa = Array.new {Array.new {Array.new}} 이렇게 써서 3차원 배열도 가능합니다.루비에서 2차원 배열은 배열 안에 배열이 들어 있는 것으로 구현됩니다. 즉, [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 이런 식이지요. 또한, 배열 안의 자료형이 모두 같지 않아도 됩니다. 예를 들어, [1, 2, "A", [1, "B"], 1.1] 이런 식으로도 가능합니다.여기서는 2차원 배열의 선언 예제와 배열 반복문 예제를 보여 드립니다. 배열 반복문은 for 문을 써도 되지만 끝까지 훑으려면 배열명.each do |저장변수| ..

★프로그래밍/Ruby :: 2015. 9. 21. 21:09

자동 미로 생성 예제

자동 미로 생성 예제

루비로 구현해 본 자동 미로 생성 예제입니다.구현된 알고리즘은 깊이 우선 탐색법(DFS; Depth First Search)을 이용한 알고리즘입니다. 지정된 랜덤 방향으로 계속해서 뚫어 나가다가 더 이상 뚫을 수 없게 되면 뒤로 돌아가면서 뚫을 수 있는 곳이 발견되면 다시 뚫어 나가는 구조입니다. 깊이 우선 방식이므로 재귀호출을 이용합니다.이 방법으로 미로를 만들게 되면 항상 다음과 같은 특징을 갖게 됩니다. - 미로판 전체에 미로가 생성됨. - 미로판 어느 곳이든 이동이 가능함. - 특정 위치에서 특정 위치로 이동하는 문제에 대하여 단 하나의 해만 존재함.다음은 DFS 자동 미로 예제 코드입니다. # 자동 미로 생성 예제 (DFS) class Maze # 설정할 값 CHR_WALL = "■" CHR_E..

★프로그래밍/Ruby :: 2015. 9. 20. 15:50

alias 문의 유용한 쓰임

루비의 명령문 중 alias 문이 있습니다. alias라는 단어의 사전적 의미를 보면, 부사로 쓰일 땐 '~라는 가명으로 알려진, 일명 ~라 불리는'의 뜻으로, 명사로 쓰일 땐 '(범죄자 등의) 가명'의 뜻으로 쓰입니다. 전산 용어로 쓰일 때는 '파일·인터넷 주소 등에 쓰이는 가명'을 뜻합니다. 루비에서 alias 문은 def 문으로 정의된 프로시저의 별칭을 지정할 때 사용되는 구문입니다. 루비에는 alias 말고도 alias_method 문도 있지만 여기선 일단 alias만 간단히 설명하기로 합니다. 다음 예제를 봅시다. def helloworld puts "Hello, world!" end alias hello helloworld hello 이 코드에서 1번 줄부터 3번 줄까지는 "Hello, wor..

★프로그래밍/Ruby :: 2015. 9. 19. 18:16

RPG 만들기 XP, VX, VXA 관련 라이브러리 버전들

RPG 만들기 XP 이후의 루비 스크립트 등 여러 라이브러리의 버전들을 조사하여 보았습니다. 조사한 대상은 루비 스크립트를 포함하여 신틸라(Scintilla) 라이브러리, OGG, Vorbis, 테오라(Theora)입니다. 구분 기준버전 Ruby Scintilla libogg libvorbis libtheora libtheoraplayer RPG XP 1.03 1.8.1 1.65 1.0.0 1.0.0 n/a n/a RPG VX 1.02 1.8.1 1.74 1.1.3 1.1.2 n/a n/a RPG VX Ace 1.02a 1.9.2 2.22 1.2.2 1.3.2 1.1.1 1.0 * 테오라 라이브러리는 RPG 만들기 VX Ace에만 내장되어 있습니다. RPG 만들기 VX Ace에서는 동영상 넣기 기능이 지..

소인수분해 프로그램 예제

소인수분해 프로그램 예제

루비의 반복문과 조건문을 응용하여 만든, 합성수를 소인수분해하는 프로그램 예제입니다.예제에 앞서 소수와 합성수의 개념을 먼저 설명드리고자 합니다. 여기서 소수는 0.1, 0.5 이런 소수(小數)가 아니라 합성수와 반대되는 개념입니다. (한자로는 素數라 쓰는데 예전에는 小數와 구분하기 위해 '솟수'라고 표기하기도 했습니다. 여기서 말하는 소수를 '소쑤/솓쑤'라고 읽는 이유도 여기 있습니다.) 어떤 자연수 n을 다른 자연수 a로 나누었을 때 나머지가 0라고 한다면, a는 n의 약수가 됩니다. 즉, 6의 약수는 1, 2, 3, 6이 됩니다. 여기서 약수 중 자기 자신을 제외한 약수를 진약수라고 부릅니다. 앞에서 예로 든 6의 진약수는 6을 제외한 1, 2, 3입니다.이제 소수와 합성수를 설명합니다. 소수는 2..

★프로그래밍/Ruby :: 2015. 9. 18. 15:38

체스판식 등차수열 채우기 예제

체스판식 등차수열 채우기 예제

모래시계 배열, ㄹ자 배열에 이어 이번에는 체스판식 배열로 등차수열 채우기 예제입니다. 말 그대로 배열 값을 채우는 예제입니다. 예를 들어, 위 그림의 체스판처럼 배열을 8*8로 했다고 가정하면, 일단 위 그림의 밝은색 칸에 해당하는 자리부터 먼저 채웁니다. 우선, 왼쪽의 흑색 룩(♜)이 있는 자리는 1, 그 다음 한 칸 건너 왼쪽 흑색 비숍(♝)이 있는 자리는 2, 또 그 다음 한 칸 건너 흑색 킹(♚)이 있는 자리는 3, 또 그 다음 한 칸 건너 오른쪽 흑색 나이트(♞)가 있는 자리는 4가 들어갈 것입니다. 그런 다음 한 줄 내려서 이번에는 왼쪽에서 두 번째 칸에 있는 폰2(♟)에는 5, 폰4에는 6, 폰6에는 7, 폰8에는 8 이런 순서로 채워나가면 나중에는 맨 마지막의 오른쪽 백색 룩(♖)이 있는..

★프로그래밍/Ruby :: 2015. 9. 17. 14:58

2차원 배열 ㄹ자로 등차수열 채우기 예제

2차원 배열 ㄹ자로 등차수열 채우기 예제

모래시계 배열에 이어 이번에는 ㄹ자로 배열 값을 채우는 예제가 있습니다. 이 알고리즘 역시 정보처리기사 기출문제 중에 있습니다. 이것을 루비로 한 번 구현해 보았습니다. 5*5 배열에 적용했을 때 출력될 결과를 미리 그려 보면 다음과 같습니다. 12345 109876 1112131415 2019181716 2122232425 아래 예제는 이를 10*10 배열에 적용했을 때 예제입니다. # ㄹ자 모양으로 값 채워넣기 예제 # # 규칙 # ㉠ 배열의 맨 처음 위치에는 1을 대입합니다. # ㉡ 그리고 그 오른쪽으로는 2, 3, 4, 5 ... 순으로 한 칸씩 채워 나갑니다. # ㉢ 그 다음 줄은 ㉡에서 채워진 숫자의 다음 숫자를 오른쪽부터 채웁니다. # ㉣ ㉢의 다음 줄은 왼쪽에서부터, 그 다음 줄은 오른쪽에..

★프로그래밍/Ruby :: 2015. 9. 17. 00:04

십자말 퍼즐 엔진 테스트용 게임

십자말 퍼즐 엔진 테스트용 게임

RPG 만들기 VX Ace의 루비 스크립트를 이용해서 시험삼아 만들어 본 십자말 퍼즐 엔진을 테스트하기 위해 만든 게임입니다. 시작하자마자 필드에 마물 다섯이 있는데 해골부터 차례로 십자말 퍼즐을 풀어 쓰러뜨리는 것이 목표입니다. 한글을 입력하는 모드는 허걱님의 전체키 및 한글 이름 입력 스크립트를 응용했습니다. Enter: 선택/입력 Space/Z: Enter와 같음 (선택 모드에서만) Backspace: 한 글자 지움 (입력 모드에서만) Delete: 글자 전체 지움 (입력 모드에서만) A: 가로/세로 바꾸기 (선택 모드에서만) S: 한 글자만 채우기 (선택 모드에서만) 한/영: 한영전환 (입력 모드에서만) Esc: 나가기/취소 0(Ins)/X: Esc와 같음 (선택 모드에서만) 다운로드(Downlo..

▶창작 게임 :: 2015. 9. 16. 12:56

모래시계 배열 예제 (정중앙부터 채우기)

모래시계 배열 예제 (정중앙부터 채우기)

프로그래밍 예제로 배열을 맨 위와 맨 아래는 꽉꽉 채우고 가운데로 갈수록 양 끝을 비워놓은 모래시계 모양으로 뿌리는 예제가 있습니다. 정보처리기사와 정보처리산업기사 실기 알고리즘에도 실제로 출제된 바 있습니다. (정보처리기능사 실기에서도 출제됐는지는 잘 모르겠습니다만...) 흔히 맨 위에서부터 1, 2, 3, 4, 5... 이런 식으로 대입하는 예제가 흔하지만 여기서는 정중앙에 1을 대입하고 그 자리를 중심으로 점점 값을 1씩 크게 해서 위 아래 위 위 아래 EXID 노래와는 상관없습니다. --; 이런 식으로 대입하는 식으로 구현했습니다. 즉, 7*7 배열에서는 다음과 같이 됩니다. 18192021222324 0891011120 0023400 0001000 0076500 017161514130 31302..

★프로그래밍/Ruby :: 2015. 9. 15. 19:49

루비 행맨게임 코드 예제

루비 행맨게임 코드 예제

루비로 짠 행맨게임 코드 예제입니다. 필자가 중학교 때 영어수업시간에 했던 게임 중 하나로, 영어 단어를 한 글자씩 맞히고 틀리면 교수형 당하는 사람 그려지는 그 게임 맞습니다.여기서는 루비의 문자열 값을 다루기 위한 예시로 행맨게임을 이용했습니다.코드는 다음과 같습니다. def init # 문제를 출제할 배열 @q_list = ["KOREA", "ENGLAND", "FRANCE", "GERMANY", "ITALY", "SPAIN", "DENMARK", "SWEDEN", "PORTUGAL", "NORWAY", "FINLAND", "POLAND", "CZECH", "AUSTRIA", "ICELAND", "BELGUIM", "NETHERLANDS", "UNITED STATES", "CANADA", "MEXI..

★프로그래밍/Ruby :: 2015. 9. 14. 14:57
Today    Yday    Tot
Juwan Park
Juwan Park's blog is powered by Daum and .
Contemporary Blue for .
Designed by Juwan Park. Creative Commons License
▲ TOP