Python

Mini Project 3 : 제어문

suehyune12 2021. 11. 21. 16:07

 

제어문을 활용해 mini project를 만들어봅시다.

 


 

 

 

1. 보물상자에서 무기인 돌, 목검, 화살, 칼, 대포 중 랜덤으로 하나를 획득합니다.
2. 길을 가다가 몬스터인, 늑대, 산적, 드래곤 중 하나를 랜덤으로 만납니다.
3. 무기를 가지고 둘 중 하나의 에너지가 0이 될 때까지 싸웁니다. 이때, 사용자(user)는 공격, 회복 중 하나를 선택하고, 상대는 공격만 합니다.

4. 승리 또는 패배에 따라 메시지를 출력합니다.

 


 

1-1. 보물상자를 발견했다는 메시지를 출력하고(input 사용), 사용자가 아무키나 누르기를 기다린다.

 

 

03) "당신은 길을 가다가 [보물상자]를 발견했습니다"를 출력합니다.

04) 사용자가 아무키나 입력할 수 있도록 input()을 입력합니다.

 

 

1-2. 보물상자에서 랜던으로 1개 무기를 획득한다. (random 함수 및 리스트 활용)

각 무기는 [무기 이름, 최소공격력, 최대공격력]의 데이터를 가집니다.

 

 

01) random 함수를 이용하기 위해서 import random을 입력한다.

 

 

07) 무기들(weapons)의 데이터를 리스트로 이용하여 입력한다.

 

 

1-3. 무기를 랜덤으로 획득한다. 

 

 

09) random.randint(0,4)은 0 이상 4 이하 범위에서 임의의 정수를 골라 sel에 저장합니다.

10) "당신은 무기의 리스트 중 sel의 숫자로 무기를 획득합니다."

11) my_weapon은 무기들의 리스트 중 sel의 숫자입니다.

 

 

2-1. 길을 가다가 랜덤으로 몬스터를 만납니다. (random 함수 및 리스트 활용)

각 몬스터는  [몬스터명, 최소공격력, 최대공격력]의 데이터를 가집니다.

 

 

13) 몬스터들(mons)는 리스트를 이용하여 [몬스터명, 최소공격력, 최대공격력]의 데이터를 가집니다.

14) sel은 0 이상 2 이하의 범위에서 임의의 정수를 골라 저장합니다.

15) "당신은 길을 가다가 몬스터의 리스트 중 sel의 숫자로 몬스터를 만납니다."

16) my_mon는 mons들의 리스트 중 sel의 숫자입니다.

 

 

3-1. 초기 양쪽 몬스터와 사용자의 에너지는 100입니다. 

사용자의 에너지는  my_energy, 몬스터의 에너지는 mon_energy로 저장합니다.

 

 

18) my_energy는 100입니다.

19) mon_energy는 100입니다.

 

 

3-2. 무한루프(while)로 전투를 합니다. 무한루프는 둘 중 하나의 에너지가 0이하가 되면 탈출한다.(break)

사용자는 공격 또는 회복을 숫자 1, 2로 정해 사용자가 입력하여 선택합니다.

만약 다른 숫자를 입력하면 "잘못 선택하셨습니다"가 입력됩니다.

 

 

21) 둘 중 하나의 에너지가 0이하가 되면 탈출하는 프로그램이여서 전체적인 무한루프가 필요합니다.

22 ~ 27) user_input이 1과 2를 선택한다면 무한루프가 종료됩니다.

그러나 다른 숫자를 입력하면 "잘못 선택하셨습니다"가 출력됩니다.

 

 

3-3. 공격을 선택한경우 최소, 최대 공격력 사이로 공격, 회복인 경우 0에서 30사이의 회복을 합니다.

 

 

29 ~ 32) 만약 user_input이 1인 공격을 선택한 경우,

공격(damage)는 내 무기의 리스트에서 최소공격력(my_weapon[1]) 이상 최대공격력(my_weapon[2]) 이하에서 정합니다.

mon_energy는 mon_energy에서 damage를 빼줍니다.

33 ~ 34) mon_energy가 0이하일 경우 무한루프가 종료됩니다.

36 ~ 39) user_input이 2인 회복을 선택한 경우,

회복(heal)은 0 이상 30 이하에서 정합니다. 

my_energy는 my_energy에서 heal을 더해줍니다.

 

 

3-4. 몬스터가 공격을 합니다.

 

 

42 ~ 44) 몬스터의 공격(damage)은 my_mon의 리스트에서 최소 공격력(my_mon[1]) 이상 최대공격력(my_mon[2])

이하에서 정합니다.

my_energy는 my_energy에서 damage를 빼줍니다.

45 ~ 46) my_energy가 0 이하일 경우 무한루프가 종료됩니다.

 

 

4-1. 승리 또는 패배에 따라 화면에 메시지를 출력합니다.

 

 

48 ~ 49) my_energy가 0보다 작을경우, 몬스터에게 졌다고 출력합니다.

50 ~ 51) 그 외 몬스터에게 이겼다고 출력합니다.

 

 


결과

 

 

그 외 다양한 결과가 나올 수 있습니다.