Terraria 게임 에서 게임 역학 중 하나는 NPC가 입주 할 수 있도록 집을 짓는 것과 관련이 있습니다. 유효한 집으로 간주되는 것에 대한 엄격한 규칙이 있습니다. 다음은 규칙 목록입니다.
집안의 총 면적은 60 정사각형 타일 이상이어야하지만 750 미만이어야합니다. 또한 외부 프레임을 포함한 집의 크기는 다음 중 하나 이상이어야합니다.
5x12 6x10 7x9 8x8 9x7 10x6 12x5 15x4
간단하게하기 위해 다음과 같이 가정 할 수 있습니다. a) 모든 입력 집은 사각형이며 b)
#
집 안에는 단단한 타일 이 없습니다 . 다음은 12x6 프레임입니다 (아름다운 ASCII로 그려 짐).############ # # # # # # # # ############
집은 배경 벽으로 덮여 있어야합니다. 이들은 단단한 타일이 아니라 3 차원에서 집 뒤에 있는 벽 입니다. 구멍은 허용되지만 4x4보다 큰 구멍은 없습니다. 행에 5 개 이상의 공백 문자가있는 행 또는 열이있는 경우 이는 4x4보다 큰 구멍이며 집은 유효하지 않습니다. 여러 개의 구멍도 허용되지만 최소한 하나의 벽이 떨어져 있어야합니다.
############ #**********# #**********# #**********# #**********# ############ ############ #* * # #* * # #* * # #****** # ############ (Still acceptable since neither hole is larger than 4x4 and there is a separator) ############ # ******# #*** ***# # ******# #*** ***# ############ (Also still valid. No row or column of blank spaces is longer or taller than 4.)
입구가 있어야합니다. 이것은
|
측면 의 문 이거나-
바닥이나 천장 의 플랫폼 일 수 있습니다. 유일한 입구가 모퉁이에 있으면 NPC가 입장 할 수 없습니다. 또한 플랫폼을 바닥으로 사용하는 경우 NPC가 작동하려면 최소한 하나의 솔리드 블록이 있어야합니다. 이 솔리드 블록은 왼쪽 또는 오른쪽의 측벽 에 직접 인접 할 수 없습니다 . 이들은 모두 출입구가있는 유효한 집입니다.############ #**********# |**********# #**********# #**********| ############ (Multiple doors, or doors up high are okay) ############ #**********# #**********# #**********# #**********# #######----# #----####### #**********# #**********# #**********# #**********# ############
더 많은 것이 허용되지만 적어도 하나의 광원
$
, 테이블T
및 의자 가 있어야합니다C
. 광원은 공중이나 지상에있을 수 있지만 테이블과 의자는 모두 바닥에 있어야합니다 (예 : 가장 낮은 줄).############ #**********# #**********# #***$******| #****TC****| ############
또한 가구 뒤에 벽이 있다고 가정 할 수 있으므로 토치, 의자 또는 테이블을 두 구멍 사이의 분리기로 계산할 수 있습니다.
############ #* * # #* * # #* $ # #**TC******| ############
도전
집을 ASCII 문자열로 사용하는 가장 짧은 함수를 작성해야하며 유효한 주택인지 여부에 따라 true / false를 반환합니다. 이것을 개행으로 구분 된 문자열, 문자열 목록 또는 합리적이라면 다른 방법으로 사용할 수 있습니다. 나는 짧은 프로그램을 포함 시켜서 그것이 제대로 작동하는지 테스트 할 수 있도록하십시오.
참고로, 이들은 모두 유효하지 않은 입력입니다.
############
-**********#
-****$*****#
-**********#
-******TC**#
############ (You can't have platforms on the sidewalls)
###########-
#**********#
#**********#
#****$*****#
#**T***C***#
###########| (NPC can't enter because the only entrances are on the corner)
############
#**********#
#******$***#
#**********#
#T****C****#
##--------## (NPC has nowhere to stand)
############
#**********#
#**********#
#**********#
#**$**TC***#
##########|# (Door cannot be in the floor or ceiling)
############
#**********#
#**********#
#**********#
|** T C #
############ (Since table and chair do not count as a background wall, the hole in background is too wide)
####### ####
#**********#
#**********#
#****$*****#
#**T***C***|
############ (There's a hole in the frame.)
###########################################################################
# #
# #
# #
# #
# #
# #
# #
# #
# #
########################################################################### (House is 75x11, which is too big.)
리더 보드
#
. 2. Martin이 요청한 것처럼 " 구멍이 4x4보다 클 수 없음 "은 정확히 무엇을 의미합니까? (또한 세 번째를 읽을 때까지 나는 그 구멍이 무엇인지 확실히 확신하지 못했습니다. 게임을하지 않은 사람들을 위해 사양을 작성해야합니다).
*
유효한 문의 주어진 예는 제외됩니다. 4. " 지상 "은 "최후 행"또는 "위 #
"를 의미합니까? 5. " 테이블과 의자에는 적용되지 않습니다. "그렇다면 바로 아래에 T
또는 그 C
아래에 있는 4x4 구멍 이 너무 큽니까? 6. " 입구가 유일한 코너에 있기 때문에 NPC에 입장 할 수 없습니다 ." 스펙이 코너에 대해 아무 말도하지 않았다고 생각합니다. 그들이 -
있거나 |
다른 문이있을 수 있습니까?
*
할 수 있어야합니까? 또는 *
구멍의 중간에 격리 되어 있고, 한쪽 면만 출입구가있는 구멍으로 출입 할 수있는 구멍과 구멍으로 직접 들어가는 출입구를 두 개로 자르는 구멍이 있습니까?