과제 기간이 일주일이기에 걱정과 기대가 반이었는데
막상 받으니 도파민이 나오며 정신 과제 2개 끝내고 차려보니 8시였다.
튜터님 = 김예린튜터님
1. 업앤다운 게임
- 컴퓨터는 1부터 100 사이의 랜덤한 숫자를 생성합니다. V
- 플레이어는 숫자를 입력하고, 입력한 숫자와 컴퓨터의 숫자를 비교하여 "업" 또는 "다운" 힌트를 제공합니다. V
- 플레이어가 컴퓨터의 숫자를 정확히 맞히면 시도한 횟수를 알려줍니다. V
- 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다. V
추가 도전 과제:
- 플레이어가 입력한 숫자가 범위를 벗어날 경우, 적절한 안내 메시지를 출력하여 유효한 범위 내의 숫자를 입력하도록 유도하세요.(TODO)
- 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요. V
- 게임이 종료될 때 플레이어의 최고 시도 횟수를 기록하고, 다음 게임에서 이를 표시하는 기능을 구현하세요. V
추가 도전 과제 1번 제외하고는 다 완성함. 추후에 더 수정해야할 것 같다.
개인적인 궁금증)
while이 2번 감싸져 있는 코드에 break를 2번 사용하여 탈출하고 싶었지만 안된다. 이 부분에 대해 튜터님이 알려주셨고 변수를 하나 만들어서 특정 조건을 주면 break가 일어나도록 만들면 된다고 알려주셨음.
flag가 그 변수이고 게임을 종료하는 부분에 break가 2번 들어가게됨.
flag가 실제로도 자주 사용하는 변수이기에 이름을 flag라고 지음
import random
flag = 0 # while보다 상단에 없으면 작동안함
while True:
x = 0
number = 0
string = ""
random_number = int(random.randint(1, 100))
print("게임을 시작합니다")
print("100 이하의 숫자를 입력하세요:")
number = int(input())
while x != number:
if random_number > number:
print("up")
x += 1
print("숫자를 입력하세요:")
number = int(input())
elif random_number < number:
print("down")
x += 1
print("숫자를 입력하세요:")
number = int(input())
else:
print("정답")
print(f"시도한 횟수 {x}")
print("다시 하시겠습니까? (y/n):")
y = str(input())
if y == 'y':
print("다시시작합니다.")
break
else:
print("게임을 종료합니다")
flag = 1
break
# break 조건
if (flag == 1):
break
2. 가위바위보 게
게임은 다음 순서로 진행됩니다.
- 플레이어가 가위, 바위, 보 중 하나를 입력합니다.V
- 컴퓨터도 무작위로 가위, 바위, 보 중 하나를 선택합니다.V
- 플레이어와 컴퓨터의 선택을 비교하여 승패를 판정합니다.V
- 결과를 출력하여 플레이어가 이겼는지, 컴퓨터가 이겼는지, 비겼는지를 알려줍니다.V
- 게임을 반복하거나 종료할 수 있는 기능을 추가하세요.V
추가 도전 과제:
- 게임의 승, 패, 무승부 횟수를 기록하고, 게임 종료 시에 플레이어에게 통계를 제공하세요.V
- 플레이어가 입력할 때 대소문자를 구분하지 않도록 프로그램을 개선하세요.(TODO)
- 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요. V
추가 도전과제 2번 뺴고 완성함. 추가적으로 수정해야할 것 같다.
원래는 continue 부분에 continue가 없어서 어색하게 작동되었다
튜터님에게 질문하니 continue만 넣으면 될 것 같다고 하셔서 넣었더니 완벽해졌다
continue 대한 경험이 부족하여 사용해야겠다는 생각을 못한 것 같다.
import random
RSP = ["바위", "가위", "보"]
y = '' # 사용자 입력
win = 0 # 이긴 횟수
lose = 0
equals = 0
while True:
pc = random.choice(RSP)
print("가위, 바위, 보 중 하나를 선택하세요:")
user = str(input())
if user not in RSP:
print("유효한 입력이 아닙니다")
print(f"승:{win} 패:{lose} 무승부:{equals} ")
continue # 위로 올라감
if user == pc:
print(f"사용자:{user} 컴퓨터:{pc}")
print("무승부")
equals += 1
print(f"승:{win} 패:{lose} 무승부:{equals} ")
print("다시 하시겠습니까? (y/n):")
y = str(input())
if y != 'y':
print("게임을 종료합니다")
exit()
else:
print("다시시작합니다.")
elif (user == '가위' and pc == '보') or (user == '바위' and pc == '가위') or (user == '보' and pc == '바위'):
print(f"사용자:{user} 컴퓨터:{pc}")
print("승리!")
win += 1
print(f"승:{win} 패:{lose} 무승부:{equals} ")
print("다시 하시겠습니까? (y/n):")
y = str(input())
if y != 'y':
print("게임을 종료합니다")
exit()
else:
print("다시시작합니다.")
else:
print(f"사용자:{user} 컴퓨터:{pc}")
print("패배...")
lose += 1
print(f"승:{win} 패:{lose} 무승부:{equals} ")
print("다시 하시겠습니까? (y/n):")
y = str(input())
if y != 'y':
print("게임을 종료합니다")
exit()
else:
print("다시시작합니다.")
'개인숙제' 카테고리의 다른 글
개인숙제 추가수정 (4) | 2024.03.01 |
---|---|
개인 과제 완료 (0) | 2024.02.28 |
react와 python을 사용하여 과제 3 ,4번 해결하기 (0) | 2024.02.27 |