我正在尝试编写一个模拟(针对一个业余项目),该模拟贯穿各个季节,并且在四个季节中的每个季节之后都对过去的年份进行计数。
(稍后会添加一些根据季节和时间而繁殖但暂时无法通过的植物)
我认为我的问题之一是我不再打电话给sim_time。计算机存储sim_time的值,然后仅循环访问该值。
它旨在使用日期时间和%运算符每240秒创建一年。然后,每90秒钟循环一个季节。冬季结束后,它将无限期地循环回到春季,依此类推。不知道如何做到这一点,或者我到底缺少什么。
只学习Python一个月,乐于接受所有建议和指针,对我们的帮助深表谢意!
import os
from datetime import datetime, time
os.system("cls")
now = datetime.now()
day_start = datetime.combine(now.date(), time(0))
time_now = ((now - day_start).seconds)
spring = "Spring" # increased harvest
summer = "Summer" # standard harvest
autumn = "Autumn" # no harvest
winter = "Winter" # no harvest
seasons = [spring, summer, autumn, winter]
year = 0
def season(world_time):
sim_time = int(time_now)
if sim_time % 360 == 0:
year += 1
return year
if sim_time % 90 == 0:
# Spring has arrived
return spring
elif sim_time % 90 == 0 and sim_time % 180 == 0:
# Summer has arrived
return summer
elif sim_time % 90 == 0 and sim_time % 180 == 0 and sim_time % 270 == 0:
# Autumn has arrived
return autumn
else:
# Winter has arrived
return winter
while True:
season(time_now)
print(season(time_now))
print(year)
# end of file
答案 0 :(得分:0)
由于您无法在函数外部访问该变量,因此请立即删除年份计算。
问题出在day_start = datetime.combine(now.date(), time(0))
我只是将其设为datetime.now()
,因为它将在启动时进行跟踪。