3/24
기본 가이드에 필요한 개념을 떠올렸는데 쉽게 떠오르지 않았다. 가령 요구사항 1번째의 터미널에서 유저가 이름을 입력하면 플레이어가 생성되도록 input()함수를 사용해야 하는데 이런 기본적인 생각이 쉽게 떠오르지 않아서 계속 답답해했다.
WIL
기초와 심화개념을 들었지만 실제로 코드를 작성하는 능력은 또 다른 부분이라고 느꼇다. 생각한 기능을 코드로 풀어내기 쉽지 않았다.
3/27
클래스와 객체를 조금씩 이해했지만 투자한 시간대비 효율적이라 느끼지 못함.
3/28
과제를 제출하고 팀과제를 하기 위해 추가하려했던 기능들을 생각해봤다. 주석으로만 남은 코드도 있고, 코드를 깔끔하게 정리하거나 기능을 추가하기 어려웠다.
3/24
기본 가이드에 같이 제공된 힌트를 보면서 전체적인 구상을 해보았다. 기본 가이드를 따라서 Character 클래스를 상속받는 sub 클래스를 몬스터, 플레이어로 지정해주었다.
class Character: # super class입니다 def __init__(self, name, hp, power): ... class Monster(Character): # sub class입니다 def __init__(self, name, hp, power): ... class Player(Character): # sub class입니다 def __init__(self, name, hp, power, mp, mpower): ...
WIL
이번주동안 파이썬 기초~심화에 해당하는 강의를 들었는데 계속 잊어버리는 느낌이 들어서 튜터님께 문의를 드렸다.
3/27
정해진 시간안에 가장 빠른 결과물을 내는 방법은 좋은 코드를 보거나 문제를 풀면서 터득한다고 결론을 내렸다. 늦게 까지 공부하는 팀원분들이 계셔서 live share를 통해 코드 가이드를 요청함.
주석을 사용하면서 작업을하면 순차적으로 코드를 짜는데 도움이 된다고 해서 최대한 주석을 쓰면서 코드를 작성했다. 특정 조건을 만족시 스탯이 오르는 메서드를 만들어봄.
class Player(Character): # 플레이어가 몬스터를 잡으면 스탯업하는 메서드 def stats_up(self): self.hp = self.max_hp + random.randint(10, 20) self.mp = self.max_mp + random.randint(10, 20) self.power = self.power + random.randint(5, 10) self.mpower = self.mpower + random.randint(5, 10)
3/24
class에
__init__
메서드를 사용할 경우 인스턴스 생성 시 해당 메서드가 무조건 실행된다.class Monster(Character): def __init__(self, name, hp, power): super().__init__(name, hp, power) ...
super class의 parameter인 (name, hp, power)를 그대로 상속받는다.
WIL
파이썬 기초, 심화과정을 공부한 대상으로 기초문법을 익숙하게 사용하고 심화 문법을 경험해 보는 게 목표라고는 했지만, 기존에 알고리즘 or 개념문제를 꾸준히 풀지 않았다면 바로바로 코드가 나오지 않는게 당연하다고 해주셨다. 나도모르게 조급해지고 있었는데 다시 차분하게 하기로..
3/27
monster = Monster('monster', 100, 10) player = Player(nephalem, 100, 10, 100, 10)
각각 monster, player 객체를 생성하는 코드인데 바보같이 클래스를 잘 선언하고도 생성해야 하는 건 떠올리지 못했는데 팀원의 가이드로 while 반복문에서 공격타입을 선택하는 코드와 승리/패배 조건문으로 게임을 끝내는 코드까지 만들 수 있었다.
while 'game': command = input('일반공격 마법공격 : ')
3/28
코드를 계속 보다보니 기본적인 틀이 눈에 들어오는 것 같다. 물론 코드로 바꾸지 못하고 주석으로만 남겨진 부분도 아직 많았지만 작성한 주석을 기준으로 내용을 하나씩 검토하면서 정리가 필요한 코드, 불필요한 코드 혹은 재미있는 속성이 포함된 코드를 고민하다보면 클래스에 추가할 수 있는 메서드및 함수를 만들 수 있었다.
3/24
py
sun class의 메서드 선언시 상속을 받았다면 별도의 선언이 필요 없지만 변경이 필요한 클래스가 있다면 sub class 자체에 메서드를 overriding 할 수 있다. 같은 이름의 메서드라도 sub class에 선언하면 상속이 아닌, 해당 클래스에 선언된 메서드를 사용한다.
WIL
파이썬 기초, 심화
3/27
module (ex: random, time등)을 활용해 상속받은 클래스의 특정 코드를 변경해서 사용할 수 있었다. random의 randint혹은 choice같은 내장된 기능들을 잘 쓰게 된다면 편리하게 코드를 작성할 수 있다.
while 반복문에서 continue와 break를 사용해 조건에 맞게 반복문을 계속하거나 빠져나올 수 있다. 또한 클래스부터 선언한 후 기능을 주석처리 후 코드화하는 방법이 상대적으로 정리가 잘 되었고, 오류가 있는부분도 수정하기 간편했다.