교수님이 설명해주신 프로그램의 조건을 잘못 이해한듯? (게임 고유의 규칙 말고)
나는 컴퓨터랑 대결 하라길래, 정답 숫자가 있는 상태에서
내가 뽑고, 결과 나오고, 그 다음에 컴퓨터가 뽑고, 결과 나오고 해서
컴퓨터랑 대결해서 먼저 이기는 게임 만들라는 것으로 이해함
그게 아니라
컴퓨터가 숫자를 뽑으면
그걸 추측하는 게임을 만들라는거였음 ㅋㅋ
# 랜덤하게 3자리 숫자가 정해진다.
# 내가 입력한다 > 결과가 나온다 *함수를 써볼까?
# 컴퓨터가 고른다 > 결과가 나온다
# 1턴 = 유저 1회 + 컴퓨터 1회
# 저장이 필요한 데이터들
score = [] #승패
trun = 0 # 이거 필요 없을수도있음 (일단 설정)
print("[menu]\n1.play\n2.score\n3.stop") # 메뉴고르기
user_input = input("메뉴를 고르시오: ")
while True:
if user_input == '1': #유저가 1번 play를 고른 경우
print("게임을 시작합니다.")
print("[menu]\n1.high(9회)\n2.normal(12회)\n3.low(15회)") # 난이도 고르기
level = input("난이도를 고르시오: ")
if level == '1':
print("high level(9회)을 시작합니다.")
if level == '2':
print("normal level(12회)을 시작합니다.")
if level == '3':
print("low level(15회)을 시작합니다.")
# 위 문구를 프린트하고 다음 코드 진행
switch = True
while switch: # 플레이어가 3개의 숫자를 고른다.(중복x, 1~9)
a = input("1~9 사이, 중복x \n첫 번째 숫자를 고르세요.: ")
a = int(a)
if 1 <= a <= 9: # 1~9 사이 숫자
switch = False # 골랐으니 해당 반복문 종료
else: # 범위를 벗어나면 다시 고르게 하기
print("1~9 사이의 숫자로 다시 골라주세요.")
# 2번째 숫자
switch = True
while switch:
b = input("1~9 사이, 중복x \n두 번째 숫자를 고르세요.: ")
b = int(b)
if 1 <= b <= 9:
if b != a: # 두번째 숫자는 a랑 중복되면 안됨
switch = False
else:
print("중복된 숫자입니다. 다시 골라주세요.")
else:
print("1~9 사이의 숫자로 다시 골라주세요.")
switch = True
while switch:
c = input("1~9 사이, 중복x \n세 번째 숫자를 고르세요.: ")
c = int(c)
if 1 <= c <= 9:
if c != a and c != b: # c를 a로 고를수도 있고, b도 고를 수 있으니까 and 사용
switch = False
else:
print("중복된 숫자입니다. 다시 골라주세요.")
else:
print("1~9 사이의 숫자로 다시 골라주세요.")
user_pic_list = [a, b, c]
print(f"사용자가 선택한 번호:{user_pic_list}")
# 컴퓨터 픽
# 컴퓨터도 랜덤하게 3자리 숫자를 고른다. (중복x, 1~9)
import random
com_pic = []
for i in range(1, 10):
com_pic.append(i)
import random
random.shuffle(com_pic)
computer = com_pic[:3]
print(computer) # 셔플은 차순으로 안나옴
if user_input == '2': #유저가 2.score를 고른 경우
print("전적을 조회합니다.")
if user_input == '3':
print("게임을 종료합니다.")
break
'python > 연습장' 카테고리의 다른 글
중복검사 왜 안되는지 알아내기 (0) | 2025.03.06 |
---|---|
내가 처음 만든 물고기 게임 (0) | 2025.03.06 |
숫자야구 (0) | 2025.03.01 |
로또 구매 프로그램 (2) | 2025.02.27 |
로또 자동 판매기 (no sample) (0) | 2025.02.26 |