티스토리 뷰
Python으로 놀아보자 - 01 Python의 Class와 Method
요즘 개발 추세가 OOP이기 때문에 파이썬이 비록 인터프린터 언어이지만 Class와 Method 형태를 아는 것은 기본이라 할 수 있을 것이다.
이해를 돕기 위해 요즘 잘나가는 게임인 LoL(이하 롤)의 캐릭터를 Class를 이용해 만들어 보도록 하겠다.
우리가 만들어볼 클래스는 '캐릭터'클래스이다. 롤에서는 '챔피언'이라고 부른다. 이하 '챔프'라고 부르겠다.
게임 '롤'을 하는 유저들은 '소환사의 협곡'이라는 맵에서 각자가 선택한 1개의 챔프를 가지고 신나게 싸운다. 이 게임은 5:5로 팀을 이루어 각 진영에 있는 '넥서스'라는 건물을 먼저 부시는 팀이 이기는 게임이다.
아래 코드를 보자.
''' Created on 2013. 3. 18. @author: KyoungRock ''' class Champion: lv = 1 movSpd = 0 basicMovSpd = 325 atkSpd = 0.658 movDep = 1 def __init__(self, chmpNam, hp, defen, slow, shoes): self.hp = hp self.defen = defen self.sloPer = slow self.chmpNam = chmpNam self.setShoes(shoes) self.raiseAtkSpd() self.setMovSpd() def raiseAtkSpd(self): self.atkSpd = 0.658*((1.0334)**(Champion.lv - 1) ) def beAtk(self, dem): print "be attack", dem, 1-100.0/(100.0+self.defen) self.dem = dem*(100.0/(100.0+self.defen)) print self.dem self.hp = self.hp-self.dem def setShoes(self, shoes): if (shoes == 1): self.shoes = 50 else: self.shoes = 0 def setMovSpd(self): print "set Mov Spd" self.movSpd = (self.basicMovSpd + self.shoes)*(1.00)*(self.movDep-self.sloPer) def printStatus(self): print "chmpNam:%s, hp:%f, lv%d, mvSpd:%f, atkSpd:%f" % ( self.chmpNam, self.hp, self.lv, self.movSpd, self.atkSpd ) ashe= Champion("ashe", 474.0, 14.9, 0, 0 ) mipo = Champion("mipo", 520.0, 18.0, 0.15, 1 ) ashe.printStatus() mipo.printStatus() mipo.beAtk(63.0) mipo.printStatus()
일단 Champion: 이라고 클래스를 선언하고 __init__() Method를 이용해 각 속성을 정의해 주었다.
아래에
mipo = Champion("mipo", 520.0, 18.0, 0.15, 1 ) ashe= Champion("ashe", 474.0, 14.9, 0, 0 )
라는 코드는
ashe(애쉬)라는 챔프와 mipo(미스 포츈)라는 챔프를 '소환'한 부분이다.
파이썬은 이렇게 클래스를 만들고 생성하고 재사용 한다.
728x90
'Language > Python' 카테고리의 다른 글
Sublime text 4 vim모드, python build script (3) | 2015.02.27 |
---|---|
Python으로 놀아보자 - 제4편 엑셀 제곱 그래프를 그리는 데이터를 만들어보자 (2) | 2014.02.18 |
python으로 db와 연동해서 Excel File로 출력하기 (0) | 2014.02.13 |
Python으로 놀아보자 - 05 Eclipse Python 연동하기 (2) | 2013.06.24 |
Python으로 놀아보자 - 03 'HelloWorld'를 출력해보자 (2) | 2013.05.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vim
- 도커각티슈케이스
- 도커티슈박스
- 도커티슈케이스
- docker container
- docker container tissue
- docker container whale
- Sh
- docker container case
- 도커각티슈박스
- 개발자
- docker container tissue box
- 도커컨테이너
- shellscript
- 싱가폴
- Linux
- 이직
- 2017 티스토리 결산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함