python/연습장
내가 처음 만든 물고기 게임
joo_coding
2025. 3. 6. 09:03
문제점은 무엇이었으며, 개선사항은 어떤 것이 있는지
# 교수님 피드백
# 물고기를 종류별로 관리하지말고, 한번에 관리해라
# 굳이 판매가능한 물고기 리스트를 만들어서 관리하지말고, 판매할 때 조건이 충족되면 판매되게 설정해라
# 1턴 = 먹이주기, 수질관리, 수질 -= 10
# 무한 = 물고기판매, 물고기구매, 수조구매
fish = ['고등어', '도미', '참치']
mac = [] #마릿수는 len으로
domi = []
tuna = []
tank = 0 #마릿수
tank_vol = 10 #수조용량
water = 100 #수질
money = 1000 #잔고
# 물고기 성장률
mac_grow = 0
# 물고기 먹이 준 횟수
mac_feed = 0
domi_feed = 0
tuna_feed = 0
# 판매가능 물고기
good_mac = 0
good_domi = 0
good_tuna = 0
switch = True
while switch:
while True:
if money > -2000:
#print(len(mac))
#print(mac[0], mac[1]) #한바퀴는 돌고나서 보이게
print(mac)
print(domi)
print(tuna)
#print(f"[물고기 현황] 고등어:{len(mac)}| 도미:{len(domi)} | 참치:{len(tuna)}")
print(f"[판매가능 물고기] 고등어:{good_mac}| 도미:{good_domi} | 참치:{good_tuna}")
print(f"현재 수조: ({tank}/{tank_vol}) / 잔고: {money}원 / 수질: {water}")
print("\n[1.먹이주기 /2.수질관리 /3.물고기 판매 /4.물고기 구매 /5.수조 구매]")
user_input = input("ㄴ무엇을 하시겠습니까?: ")
if 0<= tank < tank_vol : # 수조 안에는 물고기가 10마리 이하여야 한다
if user_input == '1': #먹이주기 = 턴O
water -= 10
feed_menu = {'고등어': 1, '도미': 5, '참치': 20}
# 먹이주기 > 마릿수 만큼 줌 = (먹이수=마릿수)
# 금액: 먹이수 * 먹이가격
mac_food = (len(mac) *1) #먹이가격
domi_food = (len(domi) *5)
tuna_food = (len(tuna) *20)
total_food = mac_food + domi_food + tuna_food #총 금액
money -= total_food
print(f"총 {total_food}원 입니다. 잔고는 {money}원 입니다.")
# 물고기 먹이 준 횟수 = mac (먹이=마릿수) 마릿수만큼 늘어남
for i in mac:
i[1] += 1
for i in domi:
i[1] += 1
for i in tuna:
i[1] += 1
# 먹이를 다 주면
for i in range(len(mac)):
if mac[i][1] == 4:
mac[i] = good_mac
good_mac += 1
for i in range(len(domi)):
if mac[i][1] == 8:
domi[i] = good_domi
for i in range(len(tuna)):
if mac[i][1] == 12:
tuna[i] = good_tuna
# elif domi_feed == 8:
# mac = good_domi
#
# elif tuna_feed == 12:
# tuna = good_tuna
elif user_input == '2': #수질관리 = 턴O
water -= 10
print(f"현재수질은 {water}% 입니다.")
print(input("수질은 구매하시겠습니까?(yes/no)"))
if 'yes':
water = 100
else:
break
elif user_input == '3': #물고기판매 = 턴X
sale_fish = input("물고기를 판매 하시겠습니까?(yes/no): ")
if sale_fish == 'yes':
print("판매를 시작합니다.")
sale_price = {'고등어': 50, '도미': 300, '참치': 1800}
mac_sale = good_mac * 50 # 판매가능 마릿수 * 판매가
good_mac = 0
domi_sale = good_domi * 300
good_domi = 0
tuna_sale = good_tuna * 1800
good_tuna = 0
total_sale = mac_sale + domi_sale + tuna_sale
money += total_sale
print(f"총 {total_sale}원 입니다. 잔고는 {money}원 입니다.")
else:
print("처음으로 돌아갑니다.")
elif user_input == '4': #물고기구매 = 턴x
# 어떤 물고기를 얼마만큼 살건지
print("[메뉴]\n1.고등어(10원) 2.도미(100원) 3.참치(1000원)")
fish = ['0', mac, domi, tuna] # 0,1,2,3 <- 1번이 고등어 일수있게
name = ['0','고등어','도미','참치']
price = [0, 10, 100, 1000]
user_input = input("어떤 물고기를 사시겠습니까?: ")
user_input = int(user_input)
user_input2 = input("몇마리 사시겠습니까?: ")
user_input2 = int(user_input2)
for i in range(1,4):
if user_input == i: # 물고기 수 저장하기
for j in range(1, user_input2 + 1):
fish[i].append([f'{name[i]}', 0])
#print(mac[0], mac[1])
for i in range(1,4): # i = 1,2,3
if user_input == i: #1번=고등어
print(f"{name[i]}를 {user_input2}마리 구매했습니다. "
f"금액은 총 {(user_input2) * price[i]}원 입니다.")
money -= ((user_input2) * price[i])
tank += user_input2
elif user_input == '5': #수조구매 = 턴x
print(input("수조를 구매 하시겠습니까?(yes/no)"))
if 'yes':
money -= 1000
tank_vol += 10
print(f"수조의 용량은 {tank_vol} 으로 증가 했습니다!")
else:
print("메뉴로 돌아갑니다.[enter]")
elif money <= (-2000): #잔액이 -2천원일때 게임 끝
print("패배")
break
else:
print("수조가 꽉 찼습니다. 더 이상 구매 할 수 없습니다.")
else: # 잔액실패
print(f"잔액이 {money}원 입니다.")
print("실패")
switch = False
break
# 개선사항
# 물고기 개별 성장률 ..ex)고등어1=성장률 75% / 고등어2=성장률 25%
# 교수님 피드백
# 물고기를 종류별로 관리하지말고, 한번에 관리해라
# 굳이 판매가능한 물고기 리스트를 만들어서 관리하지말고, 판매할 때 조건이 충족되면 판매되게 설정해라