셋째 주 1일(단일 미션 시작)

문제

클래스로 간단한 게임 만들기

몬스터와 플레이어가 매 턴 서로에게 데미지를 주고 0을 먼저 얻는 쪽이 승리하는 게임입니다.

그것을 해결하려고

클래스 캐릭터라는 기본 클래스는 이미 튜터님께서 배포해주셨습니다.

그래서 상속을 통해 플레이어와 몬스터 클래스를 만들어 보았습니다.

해결

Character 분산 클래스에서는 init에서 name, hp, power만 받기 때문에 Player 클래스에는 mp, magicPower 변수가 추가된다.

그런 다음 super().__init__(name,hp,power) 를 사용하여 변경되지 않은 나머지 코드를 가져왔습니다.

super() 또한 부모의 함수가 부모의 함수 코드를 그대로 가져오는 것을 발견했습니다.

캐릭터 클래스에는 일반 공격 기능만 있었고, 플레이어는 마법 공격이 가능하기 때문에 magicAttack 기능을 추가하고 남은 MP를 측정했다.

몬스터의 이름은 무작위로 생성되어야 한다고 했다.

그래서 mosterGen()이라는 함수를 만들어 몬스터의 이름과 몬스터의 이름에 붙일 형용사를 따로 리스트에 저장하고 조합하여 강하거나 약한 몬스터를 만들었습니다.

이름 목록1 = (‘크기가 큰’,, ‘작은’)
이름 목록2 = (‘딱딱한’,‘정상’, ‘약한’)
이름 목록3 = (‘야생 멧돼지’,‘돼지’,‘닭’)
이름1 = 임의로.우연히(0,)
이름2 = 임의로.우연히(0,)
이름3 = 임의로.우연히(0,)
monName = 이름 목록1(이름1)+이름 목록2(이름2)+이름 목록3(이름3)

그렇게 하면서 random.randrange(start number, end number + 1)을 발견했습니다.

플레이어와 몬스터 간의 전투 턴은 턴(플레이어, 몬스터)이라는 별도의 함수를 만들어 수행했습니다.

monInitiative와 playerInitiative의 이니셔티브가 있는 숫자가 큰 쪽이 먼저 진행됩니다.

그리고 한 쪽은 hp가 0이 될 때까지 while(1)으로 계속 루프를 돌다가 hp가 0이 되면 break로 빠져나왔습니다.