# RPG 2.0 수정 및 변경사항
# 1차 완성 및 1차 수정_0618
# 1차 밸런스 조정 및 레벨업 구현
# '가드' 클래스 추가
# 각 클래스 별 마지막 스테이지 입장 시 '보스몬스터' 추가예정
# 2차 수정_0621
# 각 클래스 별 마지막 스테이지 입장 시 '보스몬스터' 추가
# 가드 클래스 'shild' 스킬 추가
# 몬스터 데미지 조정 2 => 3
# 가드 클래스 HP 조정 45 => 40
# 클래스별 HP 및 데미지가 모두 전사 설정값 으로 지정된 문제 확인, 각 클래스에 맞게 수정
# 보스전 전투시 치명타 데미지 추가
# '헌터' 클래스 추가
# 저주의 높은 확률로 다수 출현으로 인한 데미지 조정 3 => 2
# 포션의 높은 확률로 다수 출현으로 인한 회복량 조정 3 => 2
# 전사 클래스 DMG 상향 7 => 8
# 헌터 테스트 결과 사망의 다수 출현으로 인하여 HP 상향 15 => 20
# 3차 수정_0622
# 가드 클래스와 보스간의 HP 차이가 작기 때문에 보스 HP 상향조정 50 => 60
# 프로그램 실행시 로그인 기능 추가
# '갬블러' 클래스 추가
# level 시스템 수정
#------------------------------------------------------------------------------------------------------------------------------------------
# 기본적인 Info
# 전사 HP : 20 / DMG : 7 / 포션효과 +2, 저주 데미지 +2
# 도적 HP : 10 / DMG : 15 / 크리티컬 데미지 25, 포션효과 -1, 몬스터에게 받는 추가데미지 +1
# 매지션 HP : 15 / DMG : 10 / 힐링 +2, 몬스터에게 받는 추가데미지 +1
# 가드 HP : 45 / DMG : 5 / 다른 클래스보다 2구역 추가 클리어 조건
# 헌터 HP : 20 / DMG : 10 / 보스와 전투시 추가 데미지 +5, Hide 스킬 (은신시 공격회피)
# 몬스터 HP : 25
# 몬스터 DMG : 3
# 보스 HP : 60
# 보스 DMG : 10
# 보스 스킬 DMG : 15
# 포션효과 : 2
# 저주 데미지 : 2
# 몬스터와 3의 배수로 전투시 레벨업, 레벨업 시 HP +5 / DMG +3
# 던전 탈출 전 사망시 게임종료
# 각 클래스 마지막 구역 보스 돌파시 생존, 게임종료
# '갬블러' 클래스 추가
from random import *
#----------------------------------------------- 변수
survive = 0 # 구역이동횟수
damage = 0 # 받은 데미지
monfight = 0 # 만난 몬스터 수
life = 20 # 전사 HP
power = 8 # 전사 데미지
life2 = 10 # 도적 HP
power2 = 15 # 도적 데미지
life3 = 15 # 매지션 HP
power3 = 10 # 매지션 데미지
life4 = 40 # 가드 HP
power4 = 5 # 가드 데미지
life5 = 20 # 헌터 HP
power5 = 10 # 헌터 데미지
life6 = 20 # 갬블러 HP
power6 = 10 # 갬블러 데미지
level = 1 # 전사 레벨
level2 = 1 # 도적 레벨
level3 = 1 # 매지션 레벨
level4 = 1 # 가드 레벨
level5 = 1 # 헌터 레벨
level6 = 1 # 갬블러 레벨
#-----------------------------------------------
# ----------------------------------------------------------- 로그인
while True:
id = input("아이디를 입력해주세요 : ")
if id == "qwerty":
password = input("비밀번호를 입력해주세요 : ")
if password == 'asdf1234':
print ("로그인에 성공하였습니다 \n")
print ("서버에 접속 중입니다... \n")
break
else:
print ("! 비밀번호를 다시 확인해주세요")
else:
print ("! 아이디를 다시 확인해주세요")
# ----------------------------------------------------------- 로그인
print ("@----- PRG 2.0 에 오신걸 환영합니다 -----@")
print ("----- warrior / rogue / magician / guard / hunter / gamler 총 6가지 클래스가 존재합니다 -----")
print ("생존 조건은 각 클래스별 마지막 구역에서 출현하는 보스 몬스터 처치이며, 던전 탈출 전 사망시 게임이 종료됩니다. \n")
dungeon = ("move", "monster") # ------------------------------- 이동과 몬스터 출현
play = ("Attack", "Hit", "life up", "curse") # ----------------------- 전사, 가드 확률표
guardplay = ("Hit", "shild", "Miss", "skill") # ------------------------------------- 가드 피격 확률표
guardshild = ("skill", "shild")
hunterplay = ("Hit", "Miss", "skill", "hide") # --------------------------------------- 헌터 클래스 보스 피격 확률표
hunterhide = ("skill", "hide") # --------------------------------------- 헌터 클래스 보스 스킬 회피 확률표
rougeplay = ("Attack", "Critical Attack", "Hit", "life up", "curse") # --------------------- 도적 확률표
magicianplay = ("Attack", "Hit", "life up", "Healing", "curse") # ------------------ 매지션 확률표
bosshit = ("Hit", "Miss", "skill") # -------------------- 보스 확률표
def job1(life, power): # 전사 클래스 설명
print ("warrior 는 {0}의 준수한 HP를 가지며 {1}의 비교적 낮은 공격력을 가지고있지만 패시프 효과로 포션의 효과가 +2 됩니다.".format(life, power))
print ("높은 체력을 가지며 포션의 효과가 증대된 대신, 저주의 데미지 -2 를 추가로 받습니다.")
return life, power
warrior = job1(20, 8)
def job2(life2, power2): # 도적 클래스 설명
print ("\n rogue 는 {0}의 비교적 낮은 HP를 가지며, {1}의 높은 공격력을 가지고있으며 크리티컬 히트로 2배의 데미지를 줄 수 있습니다.".format(life2, power2))
print ("높은 딜링을 가지며 크리티컬 히트로 2배의 딜을 가진 대신, 포션의 효과가 -1 감소하며 보스와 몬스터에게 +1 추가데미지를 입습니다.")
return life2, power2
rouge = job2(10, 15)
def job3(life3, power3): # 매지션 클래스 설명
print ("\n magician 은 {0}의 적당한 HP를 가지며, {1}의 준수한의 공격력을 가지고있으며 유일한 힐 스킬로 체력을 +2 회복합니다.".format(life3, power3))
print ("유일하게 힐 효과를 가지고 있는대신, 보스와 몬스터에게 받는 추가데미지 -1 이 적용됩니다. \n")
return life3, power3
magician = job3(15, 10)
def job4(life4, power4): # 가드 클래스 설명
print ("\n guard 는 {0}의 높은 HP를 가졌지만 {1}의 상당히 낮은 공격력을 가지고있습니다.".format(life4, power4))
print ("높은 HP를 가져 잘 죽지 않으며 쉴드 스킬로 데미지를 반으로 줄 가드는 다른 클래스와 달리 2구역을 추가로 돌파, 즉 7구역을 돌파해야 생존합니다. \n")
return life4, power4
guard = job4(40, 5)
def job5(life5, power5): # 헌터 클래스 설명
print ("\n hunter 는 {0}의 준수한 HP와 {1}의 공격력을 가지고있으며 보스에게 +5 추가 피해를 주며 보스전에서 Hide 스킬 발동시 공격을 회피합니다.".format(life5, power5))
print ("보스에게 추가 +5 데미지를 주며 Hide 스킬 발동시 공격을 회피하지만 헌터의 모든 능력은 보스전에서만 효과를 발휘합니다. \n")
return life5, power5
hunter = job5(20, 10)
def job6(life6, power6): # 갬블러 클래스 설명
print ("\n gambler 는 기본적으로 HP 와 DMG 를 알 수 없습니다 이 클래스는 HP 와 DMG가 시작시 랜덤으로 부여됩니다")
print ("랜덤 스텟부여 범위는 최소 5부터 최대 30까지, 이는 랜덤으로 부여됩니다 운이 좋다면 30, 30 도 가능합니다 \n")
return life6, power6
gambler = job6("?", "?")
player = input("----- 사용하실 클래스를 입력해 주십시요 ----- : ")
job = ("warrior", "rouge", "magician", "guard", "hunter", "gambler")
# -----------------------------------------------------------------------------------------------------------------------------------------
# 전사
if player == 'warrior':
print ("전사 클래스로 시작합니다")
print ("@--- 던전에 입장 합니다 ---@")
while 'warrior':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level = level +1
life = life +5
power = power +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level = level +1
life = life +5
power = power +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level = level +1
life = life +5
power = power +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck2 = sample(play, 1)
if luck2 == ['Attack']: # --------------공격
monster = monster - power
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck2 == ['Hit']: # -------------------------------데미지
life = life -3
damage = damage +3
print ("공격을 받았습니다 / 현재 생명력 : {0}".format(life))
if luck2 == ['life up']: # -----------------------------회복
life = life +4
print ("포션을 사용하여 생명력을 +2 회복하였습니다 패시브로 인하여 +2 를 추가 회복합니다 / 현재 생명력 : {0}".format(life))
if luck2 == ['curse']: # -------------------------저주
life = life -4
damage = damage +4
print ("저주를 받아 -2 라이프가 감소합니다 패시브로 인해 저주 데미지 -2 를 추가로 받습니다 / 현재 생명력 : {0}".format(life))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life + damage, damage))
quit()
if survive == 5: #--------------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck2 = sample(play, 1)
if luck2 == ['Attack']: # --------------공격
Boss = Boss - power
print ("보스 몬스터를 공격하였습니다 / 보스 HP : {0}".format(Boss))
if luck2 == ['Hit']: # -------------------------------보스 데미지
bosshit = sample(bosshit, 1)
if bosshit == ['Hit']:
life = life -10
damage = damage +10
print ("보스 몬스터의 공격을 받았습니다 / 현재 생명력 : {0}".format(life))
if bosshit == ['skill']: # ------------------보스 치명타 데미지
life = life -15
damage = damage +15
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 / 현재 생명력 : {0}".format(life))
if bosshit == ['Miss']: # -------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life))
if luck2 == ['life up']: # -----------------------------회복
life = life +4
print ("포션을 사용하여 생명력을 +2 회복하였습니다 패시브로 인하여 +2 추가로 회복합니다 / 현재 생명력 : {0}".format(life))
if luck2 == ['curse']: # -------------------------저주
life = life -4
damage = damage +4
print ("저주를 받아 -4 라이프가 감소합니다 패시브로 인해 저주 -2 데미지를 추가로 받습니다 / 현재 생명력 : {0}".format(life))
if Boss <= 0: # -----------------------------------------------보스 처치
print ("보스 몬스터를 처치했습니다 계속 진행합니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level, life + damage, damage, life))
quit()
if life <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life + damage, damage))
quit()
# -----------------------------------------------------------------------------------------------------------------------------------------
# 도적
if player == 'rouge': # ------------------------------------도적 클래스
print ("도적 클래스로 시작합니다")
print ("@--- 던전에 입장 합니다 ---@")
while 'warrior':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level2 = level2 +1
life2 = life2 +5
power2 = power2 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level2 = level2 +1
life2 = life2 +5
power2 = power2 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level2 = level2 +1
life2 = life2 +5
power2 = power2 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck3 = sample(rougeplay, 1)
if luck3 == ['Attack']: # ---------------------------------------------공격
monster = monster - power2
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck3 == ['Critical Attack']: # ---------------------------------------치명타 공격
monster = monster - (power2 *2)
print ("치명타 공격이 발생하였습니다! / 몬스터HP : {0}".format(monster))
if luck3 == ['Hit']: # -------------------------------데미지
life2 = life2 -4
damage = damage +4
print ("공격을 받았습니다 패시브로 인하여 -1 데미지를 추가로 받습니다 / 현재 생명력 : {0}".format(life2))
if luck3 == ['life up']: # -----------------------------회복
life2 = life2 +1
print ("포션을 사용하여 생명력을 +1 회복하였습니다 / 현재 생명력 : {0}".format(life2))
if luck3 == ['curse']: # -------------------------저주
life2 = life2 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life2))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life2 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life2 + damage, damage))
quit()
if survive == 5: #----------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck3 = sample(rougeplay, 1)
if luck3 == ['Attack']: # --------------공격
Boss = Boss - power2
print ("보스 몬스터를 공격하였습니다 / 보스 HP : {0}".format(Boss))
if luck3 == ['Critical Attack']: # --------------치명타 공격
Boss = Boss - (power2 *2)
print ("치명타 공격이 발생하였습니다! / 보스 HP : {0}".format(Boss))
if luck3 == ['Hit']: # -------------------------------보스 데미지
bosshit = sample(bosshit, 1)
if bosshit == ['Hit']:
life2 = life2 -11
damage = damage +11
print ("보스 몬스터의 공격을 받았습니다 패시브로 인하여 -1 추가 데미지를 받습니다 / 현재 생명력 : {0}".format(life2))
if bosshit == ['skill']: # -------------------보스 치명타 데미지
life2 = life2 -16
damage = damage +16
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 패시브로 인하여 -1 추가 데미지를 받습니다 / 현재 생명력 : {0}".format(life2))
if bosshit == ['Miss']: # ------------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life2))
if luck3 == ['life up']: # -----------------------------회복
life2 = life2 +1
print ("포션을 사용하여 생명력을 +1 회복하였습니다 / 현재 생명력 : {0}".format(life2))
if luck3 == ['curse']: # -------------------------저주
life2 = life2 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life2))
if Boss <= 0: # --------------------------------------------보스 처치
print ("보스 몬스터를 처치했습니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level2, life2 + damage, damage, life2))
quit()
if life2 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life2 + damage, damage))
quit()
# -----------------------------------------------------------------------------------------------------------------------------------------
# 매지션
if player == 'magician':
print ("매지션 클래스로 시작합니다")
print ("@--- 던전에 입장 합니다 ---@")
while 'warrior':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level3 = level3 +1
life3 = life3 +5
power3 = power3 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level3 = level3 +1
life3 = life3 +5
power3 = power3 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level3 = level3 +1
life3 = life3 +5
power3 = power3 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck4 = sample(magicianplay, 1)
if luck4 == ['Attack']: # --------------공격
monster = monster - power3
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck4 == ['Hit']: # -------------------------------데미지
life3 = life3 -4
damage = damage +4
print ("공격을 받았습니다 패시브로 인해 -1 데미지를 추가로 받습니다. / 현재 생명력 : {0}".format(life3))
if luck4 == ['life up']: # -----------------------------회복
life3 = life3 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life3))
if luck4 == ['Healing']: # -----------------------------힐링스킬
life3 = life3 +2
print ("힐링스킬을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life3))
if luck4 == ['curse']: # -------------------------저주
life3 = life3 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life3))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life3 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life3 + damage, damage))
quit()
if survive == 5: #---------------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck4 = sample(magicianplay, 1)
if luck4 == ['Attack']: # --------------공격
Boss = Boss - power3
print ("보스 몬스터를 공격하였습니다 / 보스 HP : {0}".format(Boss))
if luck4 == ['Hit']: # -------------------------------보스 데미지
bosshit = sample(bosshit, 1)
if bosshit == ['Hit']:
life3 = life3 -11
damage = damage +11
print ("보스 몬스터의 공격을 받았습니다 패시브로 인하여 -1 추가 데미지를 받습니다 / 현재 생명력 : {0}".format(life3))
if bosshit == ['skill']: # ----------------------보스 치명타 데미지
life3 = life3 -16
damage = damage +16
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 패시브로 인하여 -1 추가 데미지를 받습니다 / 현재 생명력 : {0}".format(life3))
if bosshit == ['Miss']: # ------------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life3))
if luck4 == ['life up']: # -----------------------------회복
life3 = life3 +2
print ("포션을 사용하여 생명력을 +3 회복하였습니다 / 현재 생명력 : {0}".format(life3))
if luck4 == ['Healing']: # -----------------------------힐링스킬
life3 = life3 +2
print ("힐링스킬을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life3))
if luck4 == ['curse']: # -------------------------저주
life3 = life3 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life3))
if Boss <= 0: # ---------------------------------------------보스 처치
print ("보스 몬스터를 처치했습니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level3, life3 + damage, damage, life3))
quit()
if life3 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life3 + damage, damage))
quit()
# -----------------------------------------------------------------------------------------------------------------------------------------
# 가드
if player == 'guard':
print ("가드 클래스로 시작합니다")
print ("@--- 던전에 입장 합니다 ---@")
while 'warrior':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level4 = level4 +1
life4 = life4 +5
power4 = power4 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level4 = level4 +1
life4 = life4 +5
power4 = power4 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level4 = level4 +1
life4 = life4 +5
power4 = power4 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck5 = sample(play, 1)
if luck5 == ['Attack']: # --------------공격
monster = monster - power4
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck5 == ['Hit']: # -------------------------------데미지
hitluck = sample(guardplay, 1)
if hitluck == ['Hit']:
life4 = life4 -3
damage = damage +3
print ("공격을 받았습니다 / 현재 생명력 : {0}".format(life4))
if hitluck == ['shild']: # -----------------------데미지 방어
life4 = life4 -1.5
damage = damage +1.5
print ("몬스터의 공격을 방어하여 절반의 데미지만 받습니다 / 현재 생명력 : {0}".format(life4))
if luck5 == ['life up']: # -----------------------------회복
life4 = life4 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life4))
if luck5 == ['curse']: # -------------------------저주
life4 = life4 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life4))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life4 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life4 + damage, damage))
quit()
if survive == 7: #---------------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck5 = sample(play, 1)
if luck5 == ['Attack']: # --------------공격
Boss = Boss - power4
print ("보스 몬스터를 공격하였습니다 / 보스 HP : {0}".format(Boss))
if luck5 == ['Hit']: # -------------------------------보스 데미지
hitluck = sample(guardplay, 1)
if hitluck == ['Hit']:
life4 = life4 -10
damage = damage +10
print ("보스 몬스터의 공격을 받았습니다 / 현재 생명력 : {0}".format(life4))
if bosshit == ['skill']: # ----------------- 보스 치명타데미지
hitluck2 = (sample(guardshild, 1))
if hitluck2 == ['skill']:
life4 = life4 -15
damage = damage +15
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 / 현재 생명력 : {0}".format(life4))
if hitluck2 == ['shild']: # -------------------------보스 치명타 데미지 방어
life4 = life4 -7.5
damage = damage +7.5
print ("보스 몬스터의 치명타 공격을 방어하여 절반의 데미지만 받습니다 / 현재 생명력 : {0}".format(life4))
if hitluck == ['shild']: # -------------------데미지 방어
life4 = life4 -5
damage = damage +5
print ("보스의 공격을 방어하여 절반의 데미지만 받습니다 / 현재 생명력 : {0}".format(life4))
if hitluck == ['Miss']: # -------------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life4))
if luck5 == ['life up']: # -----------------------------회복
life4 = life4 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life4))
if luck5 == ['curse']: # -------------------------저주
life4 = life4 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life4))
if Boss <= 0: # ------------------------------보스 처치
print ("보스 몬스터를 처치했습니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level4, life4 + damage, damage, life4))
quit ()
if life4 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life4 + damage, damage))
quit()
# -----------------------------------------------------------------------------------------------------------------------------------------
# 헌터
if player == 'hunter':
print ("헌터 클래스로 시작합니다")
print ("@--- 던전에 입장 합니다 ---@")
while 'hunter':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level5 = level5 +1
life5 = life5 +5
power5 = power5 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level5 = level5 +1
life5 = life5 +5
power5 = power5 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level5 = level5 +1
life5 = life5 +5
power5 = power5 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck6 = sample(play, 1)
if luck6 == ['Attack']: # --------------공격
monster = monster - power5
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck6 == ['Hit']: # -------------------------------데미지
life5 = life5 -3
damage = damage +3
print ("공격을 받았습니다 / 현재 생명력 : {0}".format(life5))
if luck6 == ['life up']: # -----------------------------회복
life5 = life5 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life5))
if luck6 == ['curse']: # -------------------------저주
life5 = life5 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life5))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life5 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life5 + damage, damage))
quit()
if survive == 5: #--------------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck6 = sample(play, 1)
if luck6 == ['Attack']: # --------------공격
Boss = Boss - (power5 +5)
print ("보스 몬스터를 공격하였습니다 패시브로 인하여 추가 +5 데미지를 줍니다 / 보스 HP : {0}".format(Boss))
if luck6 == ['Hit']: # -------------------------------보스 데미지
hitluck3 = sample(hunterplay, 1)
if hitluck3 == ['Hit']:
life5 = life5 -10
damage = damage +10
print ("보스 몬스터의 공격을 받았습니다 / 현재 생명력 : {0}".format(life5))
if hitluck3 == ['skill']: # ----------------- 보스 치명타데미지
hitluck4 = (sample(hunterhide, 1))
if hitluck4 == ['skill']:
life5 = life5 -15
damage = damage +15
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 / 현재 생명력 : {0}".format(life5))
if hitluck4 == ['hide']: # -------------------------------------------------------------보스 치명타 데미지 회피
print ("은신을 사용하여 치명타 공격에서 벗어났습니다 / 현재 생명력 : {0}".format(life5))
if hitluck3 == ['hide']: # -----------------------------------------------------------보스 데미지 회피
print ("은신을 사용하여 공격에서 벗어났습니다 / 현재 생명력 : {0}".format(life5))
if bosshit == ['Miss']: # -----------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life5))
if luck6 == ['life up']: # -----------------------------회복
life5 = life5 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life5))
if luck6 == ['curse']: # -------------------------저주
life5 = life5 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life5))
if Boss <= 0: # --------------------------보스 처치
print ("보스 몬스터를 처치했습니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level5, life5 + damage, damage, life5))
quit ()
if life5 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life5 + damage, damage))
quit()
# -----------------------------------------------------------------------------------------------------------------------------------------
# 갬블러
if player == 'gambler':
state = range(5, 31)
roll = sample(state, 2)
life6 = roll[0]
power6 = roll[1]
print ("갬블러 클래스로 시작합니다")
print ("당신의 운을 시험해보세요 \n")
print ("시작 전 갬블러는 HP 와 DMG 를 랜덤으로 부여받습니다")
print ("랜덤부여 결과 이번 갬블러의 HP는 {0}, DMG는 {1}로 결정됐습니다 행운을 빕니다 \n".format(life6, power6))
print ("@--- 던전에 입장 합니다 ---@")
while 'gambler':
monster = 25
luck = sample(dungeon, 1)
#print (luck) # ----------move 인지 monster 인지 확인
if luck == ['move']: # ------------------------이동
survive = survive +1
print ("{0}구역으로 이동합니다...".format(survive))
if luck == ['monster']: # ---------------------------전투
print ("몬스터를 만났습니다, 전투를 시작합니다")
monfight = monfight +1
if monfight == 3:
level6 = level6 +1
life6 = life6 +5
power6 = power6 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 2)")
if monfight == 6:
level6 = level6 +1
life6 = life6 +5
power6 = power6 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 3)")
if monfight == 9:
level6 = level6 +1
life6 = life6 +5
power6 = power6 +3
print ("레벨업 하였습니다! HP +5, DMG +3 (level 4)")
while monster:
luck7 = sample(play, 1)
if luck7 == ['Attack']: # --------------공격
monster = monster - power6
print ("몬스터를 공격하였습니다 / 몬스터HP : {0}".format(monster))
if luck7 == ['Hit']: # -------------------------------데미지
life6 = life6 -3
damage = damage +3
print ("공격을 받았습니다 / 현재 생명력 : {0}".format(life6))
if luck7 == ['life up']: # -----------------------------회복
life6 = life6 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life6))
if luck7 == ['curse']: # -------------------------저주
life6 = life6 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life6))
if monster <= 0: # ------------------------------몬스터 처치
print ("몬스터를 처치했습니다 계속 진행합니다")
break
if life6 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life6 + damage, damage))
quit()
if survive == 5: #--------------------------------------------보스 출현
Boss = 60
print ("보스 몬스터가 등장했습니다 / HP : 50, DMG : 10")
while Boss:
luck7 = sample(play, 1)
if luck7 == ['Attack']: # --------------공격
Boss = Boss - power6
print ("보스 몬스터를 공격하였습니다 / 보스 HP : {0}".format(Boss))
if luck7 == ['Hit']: # -------------------------------보스 데미지
bosshit = sample(bosshit, 1)
if bosshit == ['Hit']:
life6 = life6 -10
damage = damage +10
print ("보스 몬스터의 공격을 받았습니다 / 현재 생명력 : {0}".format(life6))
if bosshit == ['skill']: # ------------------보스 치명타 데미지
life6 = life6 -15
damage = damage +15
print ("보스 몬스터의 물어뜯기 공격에 치명타데미지를 받았습니다 / 현재 생명력 : {0}".format(life6))
if bosshit == ['Miss']: # -------------------------------------------------미스
print ("보스 몬스터의 공격이 빗나갔습니다 / 현재 생명력 : {0}".format(life6))
if luck7 == ['life up']: # -----------------------------회복
life6 = life6 +2
print ("포션을 사용하여 생명력을 +2 회복하였습니다 / 현재 생명력 : {0}".format(life6))
if luck7 == ['curse']: # -------------------------저주
life6 = life6 -2
damage = damage +2
print ("저주를 받아 -2 라이프가 감소합니다 / 현재 생명력 : {0}".format(life6))
if Boss <= 0: # -----------------------------------------------보스 처치
print ("보스 몬스터를 처치했습니다 계속 진행합니다")
print ("@--- 던전을 무사히 탈출하여 생존하였습니다 ---@")
print ("최종 이동구역은 {0}구역 이며 {1} 마리의 몬스터와 전투를 하여 {2}레벨을 달성하였고, 총 {3}의 라이프 중 {4}데미지를 받아 {5}의 라이프로 생존하였습니다.".format(survive, monfight, level, life6 + damage, damage, life6))
quit()
if life6 <= 0: # -----------------------사망
print ("--- 사망하였습니다 ---")
print ("최종 이동구역은 {0}구역이며, 총 {1}의 라이프포인트 중 {2}데미지를 받았습니다.".format(survive, life6 + damage, damage))
quit()