猫史档案馆


【Python作品分享】疫情蔓延模拟器【作品秀】

用户:S_XS_X查看:0 回复:0 评论:0 创建时间:2020-03-26T17:12:22


【作品展示】

center_image

 

【作品介绍】

疫情蔓延模拟器

 

【作品源代码】

import math, random, time, turtle

x1 = turtle.Pen()
x2 = turtle.Pen()
x3 = turtle.Pen()
x4 = turtle.Pen()
x5 = turtle.Pen()

dis, x_1, x_2, x_3, x_4, x_5 = 80, 1, 0, 0, 0, 0

def f(x):
    if x == 1:
        return "red"
    else:
        return "green"

def _setheading_(pen, x, y):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()

def distance(x1, y1, x2, y2):
    return math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

def random_place():
    return [random.randint(-300, 300), random.randint(-300, 300)]

while (x_2 != 1 or x_3 != 1 or x_4 != 1 or x_5 != 1):
    x1.clear()
    x2.clear()
    x3.clear()
    x4.clear()
    x5.clear()
    plsx1, plsy1 = random_place()[0], random_place()[1]
    plsx2, plsy2 = random_place()[0], random_place()[1]
    plsx3, plsy3 = random_place()[0], random_place()[1]
    plsx4, plsy4 = random_place()[0], random_place()[1]
    plsx5, plsy5 = random_place()[0], random_place()[1]
    _setheading_(x1, plsx1, plsy1)
    _setheading_(x2, plsx2, plsy2)
    _setheading_(x3, plsx3, plsy3)
    _setheading_(x4, plsx4, plsy4)
    _setheading_(x5, plsx5, plsy5)
    if (distance(plsx1, plsy1, plsx2, plsy2) <= dis) and (x_1 == 1 or x_2 == 1):
        x_1, x_2 = 1, 1
    if (distance(plsx1, plsy1, plsx3, plsy3) <= dis) and (x_1 == 1 or x_3 == 1):
        x_1, x_3 = 1, 1
    if (distance(plsx1, plsy1, plsx4, plsy4) <= dis) and (x_1 == 1 or x_4 == 1):
        x_1, x_4 = 1, 1
    if (distance(plsx1, plsy1, plsx5, plsy5) <= dis) and (x_1 == 1 or x_5 == 1):
        x_1, x_5 = 1, 1
    if (distance(plsx2, plsy2, plsx3, plsy3) <= dis) and (x_2 == 1 or x_3 == 1):
        x_2, x_3 = 1, 1
    if (distance(plsx2, plsy2, plsx4, plsy4) <= dis) and (x_2 == 1 or x_4 == 1):
        x_2, x_4 = 1, 1
    if (distance(plsx2, plsy2, plsx5, plsy5) <= dis) and (x_2 == 1 or x_5 == 1):
        x_2, x_5 = 1, 1
    if (distance(plsx3, plsy3, plsx4, plsy4) <= dis) and (x_3 == 1 or x_4 == 1):
        x_3, x_4 = 1, 1
    if (distance(plsx3, plsy3, plsx5, plsy5) <= dis) and (x_3 == 1 or x_5 == 1):
        x_3, x_5 = 1, 1
    if (distance(plsx4, plsy4, plsx5, plsy5) <= dis) and (x_4 == 1 or x_5 == 1):
        x_4, x_5 = 1, 1
    x1.dot(20, f(x_1))
    x2.dot(20, f(x_2))
    x3.dot(20, f(x_3))
    x4.dot(20, f(x_4))
    x5.dot(20, f(x_5))
    time.sleep(3.0)

turtle.done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页