파이썬 가위바위보

파이썬 가위바위보

작성일 2021.10.05댓글 1건
    게시물 수정 , 삭제는 로그인 필요

파이썬으로 가위바위보 게임을 만들고닜믄데요

2번 이기면 게임이 종료되고 다시하시겟습니까가 나오게 하랴고 합니다

from random import randint
personSco = 0
computerSco = 0
status = ['가위', '바위', '보']

print('[ Start game to Rock-paper-scissors game ]')

while True:
for i in range(3):
print(f'>>>{i+1}회<<<')

person = int(input('( 1.가위 2.바위 3.보 )'))
computer = randint(1, 3)

if person == computer:
personSco += 1
computerSco += 1
elif person == 1:
if computer == 2:
computerSco += 1
else :
personSco += 1
elif person == 2:
if computer == 3:
computerSco += 1
else :
personSco += 1
elif person == 3:
if computer == 1:
computerSco += 1
else :
personSco += 1

print(' 나:', status[person - 1])
print(' 컴퓨터:', status[computer - 1])
print(f' 현재 스코어 : {personSco} : {computerSco}')

if personSco == 2 or computerSco == 2:
if personSco > computerSco:
print("Congratulations! You won")
elif personSco < computerSco:
print("You lost, next chance...")
else:
print("It's a tie !!!")

YN = input("Shall we continue ?")
if YN == 'N':
break


이 코드문에서 잘몬된거 수정부탁ㅈ드려요 ㅠㅠ


#파이썬 가위바위보 코드 #파이썬 가위바위보 게임 만들기 #파이썬 가위바위보 3선승 #파이썬 가위바위보 3명 #파이썬 가위바위보 반복 #파이썬 가위바위보 승패 #파이썬 가위바위보 2명

profile_image 익명 작성일 -

다음부터는 질문하기 도움말 중 프로그래밍 관련 질문에 관한 글을 읽어주시기 바랍니다..

[code][/code]사이에 코드를 넣으시면 들여쓰기가 적용됩니다.

from random import randint status = ['가위', '바위', '보', '가위'] print('[ Start game to Rock-paper-scissors game ]') while True: personSco = 0 computerSco = 0 i = 1 while True: print(f'>>>{i}회<<<') person = int(input('( 1.가위 2.바위 3.보 ): ')) - 1 computer = randint(0, 2) if status[person + 1] == status[computer]: computerSco += 1 elif person == computer: pass else: personSco += 1 print(' 나:', status[person]) print(' 컴퓨터:', status[computer]) print(f' 현재 스코어 : {personSco} : {computerSco}') if personSco == 2 or computerSco == 2: if personSco > computerSco: print("Congratulations! You won") else: print("You lost, next chance...") break i += 1 YN = input("Shall we continue ?: ") if YN == 'N': break

질문자님 코드를 조금 고쳐보았습니다.

일단 본문에서 말씀하신 "2번 이기면 게임을 종료한다."를 기본으로 하여 생각하면, 다음의 3가지 문제점이 있었습니다.

1. 무승부 점수 문제:

현재 for문을 돌다가 두 명의 점수 중 하나라도 2가 되었을 때 메세지를 프린트하는 것으로 되어있는데, 무승부를 두번 하게 되면 둘 다 2점이 되어 2번 이기지 않아도 게임을 종료합니다. 이는 기본원칙에 반하지만, 질문자님이 원하신다면 그렇게 하시면 됩니다.

2. 최종 승리 처리

"2번 이기는 것"을 종료 조건으로 할 것이라면 계속 비길 수도 있기에 for문보다 while문으로 처리하는 것이 적절합니다. 그렇게 한다면 무승부를 할 수 있는 경우가 없어지는데, 이는 정확한 게임 규칙에 따라 적절히 수정하시면 됩니다.

3. 초기화 문제

게임을 다시 시작하면 점수를 초기화 해주어야합니다.

따라서 점수 초기 0 설정은 while 문 안에 위치하여야 합니다.

이후 부터는 개선점을 말씀드리겠습니다.

질문자님이 다수의 if-elif-else문으로 처리하신 승/패 부분에 관련된 내용입니다.

들여쓰기가 되어 있지 않아 구조를 면밀히 살펴보지는 않았지만, 거의 맞는 것으로 보입니다.

그래도 가위바위보 리스트를 만들어 두었다면,

조금 수정하여 위 방법처럼 하면 코드를 효율적으로 작성할 수 있습니다.

가위 바위 보는 이름 순서대로 이길 수 있습니다. 자신의 다음이 자신을 이기는 수라는 것입니다.

따라서, person에서 받은 인덱스 값에 +1 한 것이 computer에서 random으로 뽑은 것과 같으면, 컴퓨터가 이긴 것이고, person과 computer가 같으면 비긴것(비긴 경우는 점수 변동이 없는 것으로 취급했습니다.), 그 이외에는 컴퓨터가 진 것으로 처리하면됩니다.

이 경우, 플레이어가 바위를 선택하면 2인데, 바위 이후에는 리스트에 요소가 없으므로, 리스트에 미리 '가위'를 추가해두면 됩니다.

그 외에 자잘하게 수정한 부분이 있습니다.

궁금한 점이 있으시면 댓글 혹은 추가질문 등으로 말씀해주시면 됩니다.

파이썬 가위바위보

파이썬으로 랜덤모듈 없이 if, elif, else 만 사용해서 가위바위보 게임 어떻게 만드나요 i1 = input('com(가위/바위/보) : ') i2 = input('man(가위/바위/보)...

파이썬 가위바위보 코딩

가위바위보 하겠습니까? > 네 > 승패 출력 > 다시... > 네 > 승패 출력 (반복) 가위바위보... > 아니오 > '수고하셨습니다' 출력 후 중단 가위바위보...

파이썬 가위바위보

파이썬으로 가위 바위 보를 두 번 입력받아 승패를 판단하여 결과를 화면에 출력하라는데 도저히 모르겠어요..ㅠㅠㅠ 알려주실수 있나요..???? pc와...

가위바위보 파이썬 만드는거

내가 바위를 냈을 때 밑이랑 내가 보를 냈을 때 밑에 답 좀 알려주세요 난수를 발생시켜서 실행하기 때문에 프로그램을 직접 실행 해보시면서 여러가지 경우를 경험하시는게...

파이썬 가위바위보

파이썬 가위바위보 예제 If elif else 사용하려고 하는데 import random l = [“rock”, “scissor”, “paper] counpter_choice = random.choice(l) 여기서 틀린게...

가위바위보 파이썬(랜더모듈 없이)

가위바위보 파이썬으로 만들건데 랜덤 모듈 사용하지 않고 플레이어가 '나', '컴퓨터' 두명일 때 어떤 식으로 코드를 작성해야하나요? 참고로 비기는...

파이썬 가위바위보

... F:/지식in/가위바위보-혼자하기1.py... F:/지식in/가위바위보-혼자하기1.py... 다시 입력하세요 >>> ======================== RESTART: F:/지식in/가위바위보-혼자하기1.py...

파이썬 가위바위보 코딩

... 선생님~?' 출력 가위바위보 에서 잘못입력한경우 > '잘못입력하셨습니다. 가위바위보... 저랑 가위바위보 한 판 하시겠습니까? (네...