일지
DAY 11
joo_coding
2025. 3. 5. 19:22
물고기 키우기 게임 테스트
[ 일반모드 코드 ]
# 물고기게임 [일반]
# 물고기 종류는 '고등어', '도미", "참치"가 있다.
# 각 물고기의 가격은 '고등어'는 10원, '도미'는 100원, '참치'는 1000원이다.
# 고등어는 먹이 4번, 도미는 먹이 8번, 참치는 먹이 12번을 먹이면. 최대 가격으로 팔 수 있다.
# 고등어는 다 크면 50원, 도미는 다 크면 300원, 참치는 다 크면 1800원이다.
# 다 자라지 않은 물고기는 팔 수 없다. 판매를 선택할 경우 다 성장한 물고기는 전부 판매된다.
# 물고기를 파는 행동과 사는 행동은 1턴 내에서 무한히 수행할 수 있다. 어떤 물고기를 얼마만큼 살건지 선택할 수 있어야 한다.
# 턴을 넘어가는 행동은 먹이주기이다.
# 이 게임의 목적은 '최소한의 턴으로 0000원 벌기'이다.(개인적으로 설정할 것)
# 현재 물고기들의 성장 상태(%)를 확인하기 하면 현재 가진 물고기들의 모든 성장 상태를 확인할 수 있다.
# 더이상 물고기를 살수도 없는데 팔수도 없을 때, 게임 오버한다.
# 목표 금액을 달성하면 '00턴 만에 승리!'를 출력한다.
# 최대 물고기 수는 10마리로 제한된다.
# 적당한 텍스트로 현재 수조의 상태를 확인할 수 있도록 표현해주어야 한다.
# 처음 시작할 시 돈은 100원이다.
tank = [] #수조
tank_vol = 10 #수조용량
money = 100 #잔고
switch = True
while switch:
while True: # 잔액이 -2천원이 안 넘으면 플레이 가능
if money > -2000:
print(f"\n현재 총 ({len(tank)}/{tank_vol})마리")
print(f"물고기현황: {tank}")
print(f"잔고: {money}원")
if 0<= len(tank) <= 10 : # 10마리 이하일 때만 동작
print("\n[1.먹이주기 / /3.물고기 판매 /4.물고기 구매 /]")
user_input = input("ㄴ무엇을 하시겠습니까?: ")
if user_input == '1': #먹이주기 = 턴O
for i in tank: # 수조 안에 있는 모든 물고기한테
i[1] += 1 # 먹이 1씩 줌
elif user_input == '3': #물고기판매 = 턴x
input("판매하시겠습니까?:enter ")
i = 0 # 이 값을 추가하여 판매할 수 있는 물고기만 pop하도록 설정
while i < len(tank): # 리스트가 끝날 때까지 반복
fish = tank[i] # 각 물고기 하나씩 확인 tank[0]=1번 물고기
# tank[1]=2번 물고기
if fish[0] == '고등어' and fish[1] >= 4:
print(f"고등어 1마리 판매 완료! +50원")
money += 50
tank.pop(i) # 판매된 고등어는 리스트에서 삭제
continue # 판매된 물고기를 제외하고 리스트에서 다음 물고기 검사
elif fish[0] == '도미' and fish[1] >= 8:
print(f"도미 {len(fish)}마리 판매 완료! +{300 * len(fish)}원")
money += 300
tank.pop(i) # 판매된 도미는 리스트에서 삭제
continue # 판매된 물고기를 제외하고 리스트에서 다음 물고기 검사
elif fish[0] == '참치' and fish[1] >= 12:
print(f"참치 {len(fish)}마리 판매 완료! +{1800 * len(fish)}원")
money += 1800
tank.pop(i) # 판매된 참치는 리스트에서 삭제
continue # 판매된 물고기를 제외하고 리스트에서 다음 물고기 검사
else:
i += 1
elif user_input == '4' and len(tank) <=10: #물고기사기 = 턴x
print("[메뉴]\n1.고등어(10원) 2.도미(100원) 3.참치(1000원)")
name = ['0', '고등어', '도미', '참치']
price = [0, 10, 100, 1000]
user_input = input("어떤 물고기를 사시겠습니까?: ")
user_input2 = input("몇마리 사시겠습니까?: ")
user_input = int(user_input)
user_input2 = int(user_input2)
for i in range(4):
if user_input == i: # 물고기 수 저장하기
for j in range(1, user_input2 + 1):
tank.append([f'{name[i]}', 0])
money -= ((user_input2) * price[i])
print(f"[{name[i]}]를 {user_input2}마리 구매했습니다. "
f"금액은 총 {(user_input2) * price[i]}원 입니다.")
else:
print("수조가 꽉 찼습니다.")
else: # 잔액실패
print(f"잔액이 {money}원 입니다.")
print("실패")
switch = False
break