게임을 만들고 있는데, 그 중 하나가 스킬 값에 따라 캐릭터의 기본 히트 수를 계산합니다. 이 방법은 현재 각 스킬을 짧은, 중간 및 긴 범위에서 사용할 수 있으므로 각 값을 개별적으로 계산합니다.게임의 "히트"값 리팩토링
필자는 원래 스킬을 튜플에 결합하고 반복하여 각 히트 번호를 동적으로 생성 할 수 있다고 생각했습니다. 그러나 실제로 현재 가능한지 여부는 알지 못합니다. 현재 각 히트 번호가 자신의 변수에 할당되어 있기 때문입니다.
또한 각 범위에 대한 메서드를 만들고 튜플을 인수로 전달하는 방법을 고려했습니다. 결과 값으로 새로운 튜플 또는리스트를 생성 한 다음 개별 변수에 할당 할 수는 있지만, 그렇게 보이지 않는다는 점을 제외하고는 이런 식으로하는 것이 더 낫지는 않습니다. 복사 & 붙여 넣기 .
def calcBaseHitNumbers(self, dict):
"""Calculate character's base hit numbers depending on skill level."""
self.skill_dict = dict
self.rifle = self.skill_dict.get('CRM', 0)
self.pistol = self.skill_dict.get('PST', 0)
self.big_gun = self.skill_dict.get('LCG', 0)
self.heavy_weapon = self.skill_dict.get('HW', 0)
self.bow = self.skill_dict.get('LB', 0)
#self.skill_tuple = (self.rifle, self.pistol, self.big_gun, self.heavy_weapon,
# self.bow)
#---Short range
## for skill in self.skill_tuple:
## self.base_hit_short = skill * 0.6
self.charAttribs.bhCRM_short = self.rifle * 0.6
self.charAttribs.bhPST_short = self.pistol * 0.6
self.charAttribs.bhHW_short = self.heavy_weapon * 0.6
self.charAttribs.bhLCG_short = self.big_gun * 0.6
self.charAttribs.bhLB_short = self.bow * 0.6
#---Med range
self.charAttribs.bhCRM_med = self.rifle * 0.3
self.charAttribs.bhPST_med = self.pistol * 0.3
self.charAttribs.bhHW_med = self.heavy_weapon * 0.3
self.charAttribs.bhLCG_med = self.big_gun * 0.3
self.charAttribs.bhLB_med = self.bow * 0.3
#---Long range
self.charAttribs.bhCRM_long = self.rifle * 0.1
self.charAttribs.bhPST_long = self.pistol * 0.1
self.charAttribs.bhHW_long = self.heavy_weapon * 0.1
self.charAttribs.bhLCG_long = self.big_gun * 0.1
self.charAttribs.bhLB_long = self.bow * 0.1
어떻게 당신이 더 역동적이다이 때문에 리팩토링 것 : 여기
내가 현재 가지고 무엇인가?
편집 : (3 회, 새 값을 때마다 (나는 주석 것과 같은) 튜플을하고 그것을 반복 : 나는 내가하고 싶은 것은이 같은 추측 각 스킬)을 각 특정 범위에 대한 수정자를 기반으로합니다. 그런 다음 결과 값이 해당 변수에 자동으로 지정됩니다.
내 머리 속에는 의미가 있습니다. 그러나 실제로 코드를 작성하려고하면 길을 잃을 수 있습니다. 제 생각에이 문제는 제가 처음 작성한 "실제"프로그램이라는 것입니다. 이전에 해본 모든 것은 작은 스크립트입니다.
이것은 내 프로그램의 0.1 버전에 불과하므로 지금 리팩터링하는 것은 중요하지 않습니다. 그러나이 작업을 수동으로 수행하는 것은 매우 불합리한 것으로 보입니다. 또한 상황이 변화 될 경우 대비해 "미래 보장"하고 싶습니다.
나는 내 대답을 삭제 ' –
더 나은 야고보과 같이 주석으로 그 추가해야 당신이 대답 –
을 제시하지 않을 경우 내가 코멘트를 할 때를 게시 할 담당자가 없었어요 나는 그것을 썼다. –