가위, 바위, 보 중 하나를 선택하여 컴퓨터와 대결하는 게임
rps 에 원하는 값을 입력하고, 해당 값 중 하나를 입력하지 않았을 때는 재입력을 하도록 유도하기 위해 while 을 사용했다.lower() 함수를 사용했다.rps = ['rock', 'paper', 'scissors']
player = ""
while player not in rps:
player = input(
"Enter one of rock, paper, scissors : ").lower()
print(player)
random.choice(list) 로 리스트 내 값 중 하나를 랜덤으로 선택하도록 했다.import random
rps = ['rock', 'paper', 'scissors']
computer = random.choice(rps)
wins, losses, ties 변수를 만들고, 각 게임의 결과에 따라 해당하는 변수를 1 올려준다.wins = 0
losses = 0
ties = 0
if player == computer:
ties += 1
print(f"It's a tie! (you: {player} VS computer: {computer})")
elif (player == "rock" and computer == 'scissors') or (player == "paper" and computer == 'rock') or (player == "scissors" and computer == 'paper'):
wins += 1
print(f"You win!! (you: {player} VS computer: {computer})")
else:
losses += 1
print(f"You lose.. (you: {player} VS computer: {computer})")
replay() 함수를 만들어 게임 재시작 여부를 묻고, 답변이 y, n, Y, N 이 아니면 다시 입력하도록 했다.n 또는 N 이면 전적(n승 n무 n패)를 표시하도록 했다.if 를 삼항연산자로 썼다.y 또는 Y)이면 게임을 다시 시작하도록 했다.def replay():
while True:
reply = input("Do you want to REPLAY? (y/n) : ").lower()
if reply in ['y', 'n']:
return reply
while True:
# 이미 작성한 코드
...
reply = replay()
if reply == "n":
print(f"{wins} win{'s' if wins > 1 else ''}, {ties} tie{'s' if ties > 1 else ''}, {losses} loss{'es' if losses > 1 else ''}")
break
마지막으로 전체 코드를 rps() 함수에 담아줬다.
import random
def replay():
while True:
reply = input("Do you want to REPLAY? (y/n) : ").lower()
if reply in ['y', 'n']:
return reply
def rps():
rps_list = ['rock', 'paper', 'scissors']
wins = 0
losses = 0
ties = 0
while True:
player = ""
while player not in rps_list:
player = input(
"Enter one of rock, paper, scissors : ").lower()
computer = random.choice(rps_list)
if player == computer:
ties += 1
print(f"It's a tie! (you: {player} VS computer: {computer})")
elif (player == "rock" and computer == 'scissors') or (player == "paper" and computer == 'rock') or (player == "scissors" and computer == 'paper'):
wins += 1
print(f"You win!! (you: {player} VS computer: {computer})")
else:
losses += 1
print(f"You lose.. (you: {player} VS computer: {computer})")
reply = replay()
if reply == "n":
print(f"{wins} win{'s' if wins > 1 else ''}, {ties} tie{'s' if ties > 1 else ''}, {losses} loss{'es' if losses > 1 else ''}")
break
rps()
