RPG2K R2k로 퍼즐 만들기
2007.01.23 17:14
현실에는 다양한 퍼즐이 존재합니다.
퍼즐게임은 물론이고 매일 신문에서 보는 크로스워드(십자말풀이), 스도쿠에서 부터,
매니아층을 형성하는 루빅스큐브, 피라밍크스 등등...
요즘 그런 퍼즐의 알고리즘을 짜는걸로 나날을 보내고 있습니다.
십자말풀이는...한글입력이 안되고, 주인공의 이름입력처리로 영어를 입력해도 그걸 써먹을 방법이 없군요.
숫자입력의 처리로 숫자 십자말 풀이는 만들 수 있겠지만, 난이도 급하락~
맵을 두개 만들어서 하나는 문제맵, 하나는 타일맵으로 해서 해당 한글(영어)타일을 밟으면 '첫자초성','첫자중성'...영어의 경우에는 '첫 알파벳' '두번째 알파벳'에 변수를 입력해서 조건분기로 맞추는 노가다를 하면 가능하겠지만.... 노가다가 무섭군요.
게다가 퍼즐을 자동생성하는 알고리즘은 특성상 불가능하니 이것 역시 몇십개를 노가다로 만들어야...ㅜㅜ
스도쿠는 생각을 안해봐서 잘 모르겠지만, 숫자입력의 처리를 이용하면 될 것 같네요.
피라밍크스는 표면이 삼각형이니 넘어가고...
루빅스큐브 알고리즘 생각에 가장 많은 시간을 보냈습니다.
일단 루빅스큐브를 하기 위해선 꼭 있어야 하는 기능을 몇개 간추려 보자면
ㄱ)각 면의 상태를 깔끔하게 볼 수 있어야 한다.
ㄴ)정면(F)로 두는 면을 쉽게 변경할 수 있어야 한다.
ㄷ)F/F',R/R',L/L',U/U',D/D',B/B'의 12가지중, 상당수가 입력하기 편하도록 구현되어야 한다.
ㄹ)한쪽면을 돌렸을때, 그것이 깔끔하게 돌아간다는 느낌이 와야 한다.
ㅂ)완성시 이펙트가 있으면 좋다.
ㅅ)자동으로 스크램블되는 기능이 있어야 한다.
웹게임(?)비슷하게 루빅스큐브를 맞추는 사이트도 있어서 그걸 참고 삼아 고민을 해봤습니다. (만들엄두는...)
일단 회전기호는 키입력의 처리에서 Numpad를 보고 이해가 잘 되는 숫자버튼 및 기본 방향키를 할당하고, (R2k3만 가능) 선택 혹은 취소버튼은 스크램블, 타이머 on/off 등의 메뉴를 넣으면 좋겠군요.
20x15사이즈 안에 세로로 정사각형4개가 들어가니 왼쪽에 전개도형식으로 6면을 넣고 오른쪽에 픽쳐로 할당된 키를 보여주면 플레이가 편하겠죠.
만약 6면을 모두 보여준다면 보는 시선을 회전하는 버튼이 꼭 필요한건 아니지만, 깔끔하지 않을수도 있습니다. 반대로 일부면 (1면 혹은 3면)만 보여준다면 회전기호까지 버튼을 할당해야해서 조금 복잡해지죠.
스크램블기능은 키입력의 처리를 받는 변수에 난수를 집어넣는걸 몇십번 반복하면 되니 의외로 간단할 것 같더군요. (시도는 안해봐서...)
현재 봉착한문제는 '회전'
돌아간다는 느낌을 구현하는게 힘들거든요, 실제로 돌리는 것도 그렇고. 돌리는 방향으로 모든 이벤트가 동시에 움직이면 돌아가는 느낌이 날지도 모르겠지만요. 이벤트의 위치설정이나 위치교환을 이용하여 노가다하면 움직일것도 같지만.. 각 면에 존재하는 색깔(이벤트)가 매번 다르니 그걸 어떻게 구현하느냐가 가장 머리아프네요.
...고3이 이런거 짜고 있으니 공부가 안될만도 합니다(하하;)
댓글 4
-
새벽도둑
2007.01.23 17:15
루빅스큐브는 3x3x3형태의 정육면체에서 각 면을 회전시켜서 각 면이 같은색깔로 이루어 지도록 많드는 퍼즐로, 티비에서도 자주 소개되는 편이니 대부분 아시리라는 가정 아래에서 글을 썼습니다.|+rp2+|2697|+rp3+|acoc_board_ideatip -
FirstMoon
2007.01.23 22:57
숫자 십자말풀이 엄청 어려운것들 많은데요..
제가 아는것중에 몇개는 제가 3시간 잡아도 못깨는것들 =ㅅ=|+rp2+|2701|+rp3+|acoc_board_ideatip -
SSS
2007.01.24 09:10
큐브.. 저도 한번 고민해본적 있는데
단순히 플레이만 할수있다면 2k에서도 가능하지만
회전 효과라던지... 기타 등등은 삼각함수도 필요로 하기에.... XP를 써야 하겠더군요 ㅡ0ㅡ|+rp2+|2705|+rp3+|acoc_board_ideatip -
새벽도둑
2007.01.24 19:59
현재 회전하는 면의 가운데에 CW,CCW모양의 화살표가 잠깐 나타나는걸로 구현해볼까 고민중이에요. |+rp+|2705|+rp2+|2706|+rp3+|acoc_board_ideatip
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
369 | 귀국 예고입니다. ^^; [3] | Zeprod | 2007.02.11 | 307 |
368 | 작은 팁하나..전투애니메이션의 픽쳐화! [10] | 윈드 | 2007.01.31 | 796 |
367 | 액알, 한번의 노가다로 끝까지 사용하자! [5] | RPG_매냐 | 2007.01.31 | 1001 |
366 | 원형 거리 측정(세 줄 스크립트) [2] | 타이머 | 2007.01.30 | 688 |
365 | [C] C는 어떤 언어이고 뭘 할 수 있는 언어일까? [3] | SeHwa | 2007.01.25 | 462 |
364 | 분수의 사용 [7] | Yggdrasil | 2007.01.24 | 460 |
» | R2k로 퍼즐 만들기 [4] | 새벽도둑 | 2007.01.23 | 626 |
362 | 오직 RPGXP만 재생하지 못하는 MIDI파일 [5] | Les Paul | 2007.01.22 | 888 |
361 | 에에... 할일 없어서 해봤습니다... 카노 방식 이벤트 액알예제.... [2] | かの☆あおき | 2007.01.18 | 837 |
360 | [C++] template의 활용법 [1] | Zeprod | 2007.01.16 | 296 |
359 | BGM과 ME가 재생이 안될때 | View2er | 2007.01.16 | 393 |
358 | -Jindow_v0.1-체험판 [4] | -제이- | 2007.01.15 | 649 |
357 | 아이디어 하나.... [4] | 역습의 귀공자 | 2007.01.13 | 402 |
356 | 소개글 [봄이 남아있던 자리] [5] | Vermond | 2007.01.12 | 653 |
355 | 소개글 [산타클로스~수해와 수영] [5] | Vermond | 2007.01.10 | 616 |
354 | 범위 공격 : [y >= x^2] 을 이용 [7] | Spegel | 2007.01.09 | 778 |
353 | 대기 [6] | 가다없는 | 2007.01.07 | 293 |
352 | [C++] WinAPI를 이용한 GUI 프로그래밍 [2] | Zeprod | 2007.01.07 | 645 |
351 | 잠입 게임 아이디어 [5] | 아르킨 | 2007.01.07 | 557 |
350 | 데미지의 최소값, 최대값을 설정해보자! ver 1.0 [6] | 『연금술사』 | 2007.01.04 | 898 |