티스토리 뷰
반응형
모든 강의 자료 : www.codingnow.co.kr/
파이썬 기초 문법을 활용한 간단한 게임을 만들어 봅니다.
여기에서 사용되는 것은 random 메소드를 import하여 난수를 가져오고
문자열 리스트(sel)를 접근하여 값을 가져오며
간단한 딕셔너리를 선언하고 이것을 키값으로 가져와 print합니다.
또한 if문을 사용하여 비교하며, 논리연산자(and)의 사용법을 활용해 봅니다.
while을 사용하여 조건에 따른 반복과 종료를 위한 break를 사용합니다.
자세한 코드 설명은 첨부된 동영상으로 확인하시면 됩니다.
소스코드입니다.
import random
sel = ['가위', '바위', '보']
result = {0: '승리했습니다.', 1: '패배했습니다.', 2: '비겼습니다.'}
def checkWin(user, com):
if not user in sel:
print('잘못입력하였습니다. 다시 입력하세요')
return False
print(f'사용자 ( {user} vs {com} ) 컴퓨터')
if user == com:
state = 2
elif user == '가위' and com == '바위':
state = 1
elif user == '바위' and com == '보':
state = 1
elif user == '보' and com == '가위':
state = 1
else:
state = 0
print(result[state])
return True
print('\n-------------------------------------------')
while True:
user = input("가위, 바위, 보 : ")
com = sel[random.randint(0, 2)]
if checkWin(user, com):
break
print('-------------------------------------------\n')
[다시하시겠습니까] 추가 버전입니다.
continue와 break를 활용하면 다음과 같이 구현할 수 있습니다.
위의 코드에서 추가된 부분입니다.
import random
sel = ['가위', '바위', '보']
result = {0: '승리했습니다.', 1: '패배했습니다.', 2: '비겼습니다.'}
def checkWin(user, com):
if not user in sel:
print('잘못입력하였습니다. 다시 입력하세요')
return False
print(f'사용자 ( {user} vs {com} ) 컴퓨터')
if user == com:
state = 2
elif user == '가위' and com == '바위':
state = 1
elif user == '바위' and com == '보':
state = 1
elif user == '보' and com == '가위':
state = 1
else:
state = 0
print(result[state])
return True
def continueComfirm():
while True:
user = input("다시하시겠습까? : 예, 아니요")
if user == '예':
return True
elif user == '아니요':
return False
else:
print("예 또는 아니요를 입력하세요.")
print('\n-------------------------------------------')
while True:
user = input("가위, 바위, 보 : ")
com = sel[random.randint(0, 2)]
if checkWin(user, com):
if continueComfirm():
continue
else:
break
print('-------------------------------------------\n')
묵찌빠 강의 입니다.
https://cflab2017.tistory.com/111
[라운드 형태로 변경]
위의 다시하시겠습니까? 버전을 응용하여 라운드 개념으로 변경해 본 코드 입니다.
비교하면서 보면 좋을 겁니다. ㅎㅎ
import random
sel = ['가위', '바위', '보']
result = {0: '승리했습니다.', 1: '패배했습니다.', 2: '비겼습니다.'}
def checkWin(user, com):
if not user in sel:
print('잘못입력하였습니다. 다시 입력하세요')
return False
print(f'사용자 ( {user} vs {com} ) 컴퓨터')
if user == com:
state = 2
elif user == '가위' and com == '바위':
state = 1
elif user == '바위' and com == '보':
state = 1
elif user == '보' and com == '가위':
state = 1
else:
state = 0
print(result[state])
return True, state
def continueComfirm():
while True:
user = input("다시하시겠습까? : 예, 아니요")
if user == '예':
return True
elif user == '아니요':
return False
else:
print("예 또는 아니요를 입력하세요.")
print('\n-------------------------------------------')
round_count = 1
user_hp = 0
com_hp = 0
while True:
print(round_count,"번째 Round")
user = input("가위, 바위, 보 : ")
com = sel[random.randint(0, 2)]
check, ret = checkWin(user, com) #잘못된 값인지와 결과값을 가져온다.
if check == True:
if ret == 1: #결과 값에 따라 점수를 누적한다.
com_hp += 2
if ret == 0:
user_hp += 2
print("\n유저 HP : ",user_hp," ,컴퓨터 HP : ",com_hp)
round_count += 1
if(round_count > 3): #라운드를 카운트 한다.
print("종료합니다")
break
print('-------------------------------------------\n')
반응형
'파이썬 강의' 카테고리의 다른 글
파이썬 기초 활용 #키보드 입력을 사용하여 초간단 갤러그 스타워즈 게임 #2탄 (0) | 2021.01.14 |
---|---|
파이썬 기초 활용 #키보드 입력으로 별이동하기 게임 #1탄 pynput (0) | 2021.01.14 |
파이썬 기초 활용편 : : 학생의 총점, 최고, 최저, 평균 구하기 (0) | 2021.01.12 |
파이썬 기초 활용편 별 피라미드 출력하기 강의 :: 과정을 차근차근 설명합니다. (0) | 2021.01.12 |
파이썬 기초 :: 예외처리 와 쓰레드 :: try, except, thread (0) | 2021.01.11 |