개발일기 [Python 파이썬]
[Python Game] 파이썬 가위바위보 게임
neullo
2024. 2. 26. 21:12
파이썬을 사용하여 가위바위보 게임을 만들어 볼게요. 가위, 바위, 보 중 하나를 선택하여 컴퓨터와 대결합니다!
내용:
플레이어와 컴퓨터가 참여하는 가위바위보 게임을 만드세요. 게임은 다음 순서로 진행됩니다. 플레이어가 가위, 바위, 보 중 하나를 입력합니다. 컴퓨터도 무작위로 가위, 바위, 보 중 하나를 선택합니다. 플레이어와 컴퓨터의 선택을 비교하여 승패를 판정합니다. 결과를 출력하여 플레이어가 이겼는지, 컴퓨터가 이겼는지, 비겼는지를 알려줍니다. 게임을 반복하거나 종료할 수 있는 기능을 추가하세요.
게임 선택지 가위,바위,보 만들기/ 게임 반복/ 게임 종료/ 승패 판정/
게임의 승, 패, 무승부 횟수를 기록하고, 게임 종료 시에 플레이어에게 통계를 제공하세요. 플레이어가 입력할 때 대소문자를 구분하지 않도록 프로그램을 개선하세요. 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요
게임 결과지 승,패,무승부 만들기/ 통계 제공/ 대소문자 구분없이 만들기/ 게임 반복시 재시작 여부 붇기/ 초기화 혹은 종료 기능
1. 무작위로 번호생성 [Import], 게임 실행 [def play_game], 가위 바위 보 선택지 제공 [valid_inputs]
- import random: 랜덤 모듈을 컴퓨터가 무작위로 선택하기 위해 사용.
- def play_game(): play_game이라는 함수를 정의. 이 함수는 게임을 실행하는 데 사용.
- valid_inputs = ['가위', '바위', '보']: 사용자가 입력할 수 있는 유효한 선택지를 리스트로 정의
2. 게임반복위한 무한루프 생성 [while true], user 그리고 computer choice 에 따른 결과 print 지정
while True:: 게임을 계속 반복하기 위한 무한 루프를 시작
user_win_count = 0: 사용자의 승리 횟수를 기록할 변수를 초기화.
computer_win_count = 0: 컴퓨터의 승리 횟수를 기록할 변수를 초기화.
tie_count = 0: 무승부 횟수를 기록할 변수를 초기화.
- user_choice = input("가위, 바위, 보 중 하나를 선택하세요: ").lower(): 사용자에게 가위, 바위, 보 중 하나를 선택하도록 입력을 받습니다. .lower()를 사용하여 사용자 입력을 소문자로 변환합니다.
사용자와 컴퓨터가 번갈아 선택하고, 승부를 판정하며 사용자가 게임을 반복하고 싶을 때까지 반복.
또한 각 게임의 결과를 통해 승, 패, 무승부 횟수를 기록하고, 게임 종료 시에 플레이어에게 통계를 제공.
computer_choice = random.choice(valid_inputs): 컴퓨터는 무작위로 가위, 바위, 보 중 하나를 선택.
승부 판정 부분:
사용자와 컴퓨터의 선택을 비교하여 승부를 판정. 만약 무승부인 경우 tie_count를 증가[+ =1].
그 외의 경우에는 승리 횟수를 증가[+ =1].
출력:
print(f"사용자: {user_choice}, 컴퓨터: {computer_choice}"): 사용자와 컴퓨터의 선택을 출력
3. 게임 종료 : 다시 게임 할지 묻기 [play_again] 그리고 승, 패, 무승부 횟수 출력
- play_again = input("다시 하시겠습니까? (y/n): "): 사용자에게 게임을 다시 할 것인지 물어봅니다.
- if play_again.lower() != 'y':: 사용자가 'y'를 입력하지 않으면 게임을 종료합니다.
- print(f"승: {user_win_count} 패: {computer_win_count} 무승부: {tie_count}"): 게임 종료 후 승, 패, 무승부 횟수를 출력.
- if __name__ == "__main__":: 스크립트가 직접 실행될 때 play_game() 함수를 호출하여 게임을 시작합니다.
4. 유효하지 않은 선택 했을 경우 [if user_choice not in valid_inputs:]
while true 밑에 바로 user choice 조건 넣으면서 선택지3개와 선택지 외에 것을 골랐을때의 출력값 지정
- if user_choice not in valid_inputs:: 사용자가 유효한 입력을 했는지 확인. 만약 유효하지 않은 입력이라면 다시 입력을 받습니다.
전체 코드
import random
def play_game():
valid_inputs = ['가위', '바위', '보']
user_win_count = 0
computer_win_count = 0
tie_count = 0
while True:
user_choice = input("가위, 바위, 보 중 하나를 선택하세요: ").lower()
if user_choice not in valid_inputs:
print("유효한 입력이 아닙니다.")
continue
computer_choice = random.choice(valid_inputs)
print(f"사용자: {user_choice}, 컴퓨터: {computer_choice}")
if user_choice == computer_choice:
print("무승부!")
tie_count += 1
elif (user_choice == '가위' and computer_choice == '보') or \
(user_choice == '바위' and computer_choice == '가위') or \
(user_choice == '보' and computer_choice == '바위'):
print("사용자 승리!")
user_win_count += 1
else:
print("컴퓨터 승리!")
computer_win_count += 1
play_again = input("다시 하시겠습니까? (y/n): ")
if play_again.lower() != 'y':
print("게임을 종료합니다.")
break
print(f"승: {user_win_count} 패: {computer_win_count} 무승부: {tie_count}")
if __name__ == "__main__":
play_game()