용사 '파이썬'의 시스템 도우미 설계
당신은 이세계로 소환된 용사 '파이썬'의 시스템 도우미이다. 당신의 도움이 없다면 험난한 이세계에서 '파이썬'은 성장도 하지 못하고, 길을 잃고 쓰러지게 될 것이다.
앞으로 용사 '파이썬'은 그냥 파이썬이라 부르자.
파이썬이 모험을 시작한다.
전투는 일단 3종류의 몬스터가 있다.
('고블린', '트롤', '늑대')
전투가 아닌 상황도 3가지가 있다.
('파이썬이 길을 갑니다', '파이썬이 하늘을 한번 쳐다봅니다', '파이썬이 퇴행성 관절염으로 절뚝거립니다')
문제 1.
'파이썬'은 여러 몬스터들을 앞으로 만나게 될 예정이다. 몬스터를 만났을 때 몬스터 이름을 변수로 만들어 몬스터 네임이 입력되면 "'파이썬'이 '몬스터 네임'을 조우했습니다." 라고 출력되게 사용자 함수를 만들어라.
몬스터 이름은 트롤, 고블린, 늑대 중 한마리를 입력하면 된다.(수동)
def meetMonster():
if mon_name == '고블린' or mon_name == '늑대' or mon_name == '트롤':
conjunction = ('과', '와')
if mon_name == '고블린' or mon_name == '트롤': #파이썬이 몬스터중 고블린과 트롤을 만났을 때 한글 맞춤법 조건문
conjunction = conjunction[0]
else:
conjunction = conjunction[1]
print("'파이썬'이 '%s'%s 조우했습니다." %(mon_name, conjunction))
else :
print("몬스터 이름이 잘못 입력 되었습니다.") #조건외 입력시 처리
mon_name = input("고블린, 늑대, 트롤 셋 중 하나를 입력해 주세요. : ")
meetMonster()
고블린, 늑대, 트롤 셋 중 하나를 입력해 주세요. : 늑대
'파이썬'이 '늑대'와 조우했습니다.
고블린, 늑대, 트롤 셋 중 하나를 입력해 주세요. : 트롤
'파이썬'이 '트롤'과 조우했습니다.
고블린, 늑대, 트롤 셋 중 하나를 입력해 주세요. : 참새
몬스터 이름이 잘못 입력 되었습니다.
문제 2.
입력창에 '전투'라고 입력 했을 때 위 3마리 몬스터 중 한마리를 랜덤으로 조우하게 코드를 작성하고 출력하시오
import random #랜덤 함수를 사용하기 위해 모듈 임포트
def meetMonster():
conjunction = ('과', '와')
monster = ('고블린', '트롤', '늑대')
mon_name = random.choice(monster)# 랜덤 초이스(매개변수의 리스트, 튜플, 문자열, range등 중 무작위로 하나의 원소를 출력)
if mon_name == '고블린' or mon_name == '트롤':
conjunction = conjunction[0]
else:
conjunction = conjunction[1]
print("'파이썬'이 '%s'%s 조우했습니다." %(mon_name, conjunction))
if(input("'전투' 라고 입력해 주세요 : ")=='전투'):
meetMonster()
else:
print("명령이 잘못 입력 되었습니다.")
'전투' 라고 입력해 주세요 : 전투
'파이썬'이 '고블린'과 조우했습니다.
문제 3.
'파이썬'이 맨날 전투만 한다면 너무 불쌍하다. 중첩 조건문을 사용해 "진행" 을 입력했을 때 전투가 아닌 상황 3가지와 2번 문제의 "전투"가 발생하는 상황을 랜덤으로 발생하게 출력하라.
import random #랜덤 함수를 사용하기 위해 모듈 임포트
def pythonGo(): #파이썬이 길을 걸을 때 '전투', '휴식' 중 랜덤으로 발생
python_way = ('전투','휴식')
python_life = random.choice(python_way)
if(python_life == '휴식'): #파이썬이 몬스터를 만나지 않았을 때
walk = ('파이썬이 길을 갑니다', '파이썬이 하늘을 한번 쳐다봅니다','파이썬이 퇴행성 관절염으로 절뚝거립니다')
python_walk = random.choice(walk)
print(python_walk)
elif(python_life == '전투'): #파이썬이 몬스터를 만났을 때
conjunction = ('과', '와')
monster = ('고블린', '트롤', '늑대')
mon_name = random.choice(monster)
if mon_name == '고블린' or mon_name == '트롤': #파이썬이 몬스터중 고블린과 트롤을 만났을 때 한글 맞춤법 조건문
conjunction = conjunction[0]
else:
conjunction = conjunction[1]
print("'파이썬'이 '%s'%s 조우했습니다." %(mon_name, conjunction))
if(input("'진행'이라고 입력해 주세요 : ")=='진행'):
pythonGo()
else:
print("'진행'이라고 인풋창에 입력해주세요")
'진행'이라고 입력해 주세요 : 진행
'파이썬'이 '고블린'과 조우했습니다.
'진행'이라고 입력해 주세요 : 뭐?
'진행'이라고 인풋창에 입력해주세요
문제 4
중첩 조건문을 사용했더니 코드가 너무 복잡해졌다. 중첩조건문 대신 함수를 활용해 간략하게 수정하자.
import random #랜덤 함수를 사용하기 위해 모듈 임포트
#파이썬이 몬스터를 만났을 때
def meetMonster():
conjunction = ('과', '와')
monster = ('고블린', '트롤', '늑대')
mon_name = random.choice(monster)
if mon_name == '고블린' or mon_name == '트롤':
conjunction = conjunction[0]
else:
conjunction = conjunction[1]
print("'파이썬'이 '%s'%s 조우했습니다." %(mon_name, conjunction))
#파이썬이 몬스터를 만나지 않았을 때
def walkPython():
walk = ('파이썬이 길을 갑니다', '파이썬이 하늘을 한번 쳐다봅니다' ,'파이썬이 퇴행성 관절염으로 절뚝거립니다')
python_walk = random.choice(walk)
print(python_walk)
#파이썬이 길을 걸을 때 '전투', '휴식' 중 랜덤으로 발생
def pythonGo():
python_way = ('전투','휴식')
python_life = random.choice(python_way)
if(python_life == '휴식'):
walkPython()
else:
meetMonster()
#파이썬을 운명으로 들이미는 인풋창
if(input("'진행'이라고 입력해 주세요 : ")=='진행'):
pythonGo()
else:
print("'진행'이라고 인풋창에 입력해주세요")
'진행'이라고 입력해 주세요 : 진행
파이썬이 하늘을 한번 쳐다봅니다
문제 5
시스템이 일일히 진행 이라고 인풋창에 입력하는게 귀찮아졌다.
'진행'이라는 버튼을 하나 만들고 누를 때 마다 파이썬의 상황이 갱신되게 만들어보자.
import random #랜덤 함수를 사용하기 위해 모듈 임포트
from tkinter import* #tkinter모듈의 모든 클래스와 함수 포함
#파이썬이 몬스터를 만났을 때
def meetMonster():
conjunction = ('과', '와')
monster = ('고블린', '트롤', '늑대')
mon_name = random.choice(monster)
if mon_name == '고블린' or mon_name == '트롤':
conjunction = conjunction[0]
else:
conjunction = conjunction[1]
print("'파이썬'이 '%s'%s 조우했습니다." %(mon_name, conjunction))
#파이썬이 몬스터를 만나지 않았을 때
def walkPython():
walk = ('파이썬이 길을 갑니다', '파이썬이 하늘을 한번 쳐다봅니다','파이썬이 퇴행성 관절염으로 절뚝거립니다')
python_walk = random.choice(walk)
print(python_walk)
#파이썬이 길을 걸을 때 '전투', '휴식' 중 랜덤으로 발생
def pythonGo():
python_way = ('전투','휴식')
python_life = random.choice(python_way)
if(python_life == '휴식'):
walkPython()
else:
meetMonster()
#파이썬을 운명으로 들이미는 버튼
window = Tk() #윈도우 생성
label = Label(window, text = '파이썬의 대모험')#윈도우 레이블 위젯 생성 뒤 텍스트 지정
label.pack() #pack이 호출되어야만 위젯이 화면에 나타난다
b1 = Button(window, text = '진행', command = pythonGo) # command = 함수 실행
b1.pack(padx = 220, pady = 20) # 버튼 상하좌우 여백
window.mainloop() #사용자가 윈도우를 닫을 때 까지 창의 이벤트를 반복한다.
'AI > Python' 카테고리의 다른 글
Python #정규식 #정규 표현식 (0) | 2021.09.25 |
---|---|
Python #파이썬의 대모험 02 (0) | 2021.09.01 |
Python #실습 #반복문 활용 #조건문 (0) | 2021.08.31 |
Python Basic #12 module (0) | 2021.07.26 |
Python Basic #11 class (0) | 2021.07.26 |