p.width(3) q.color("blue", (0.85, 0.85, 1)) q.width(3) for t in p,q: t.shape("turtle") t.lt(36) q.lt(180) for t in p, q: t.begin_fill() for i in range(5): for t in p, q: t.fd(50) t.lt(72) for t in p,q: t.end_fill() t.lt(54) t.pu() t.bk(50) ## Want to get some info? print(s1, s2) print(p, q) print(s1.turtles()) print(s2.turtles()) TK.mainloop()
def main(): player_N = 15 root = TK.Tk() canvas = TK.Canvas(root, width=1200, height=700, bg="#ddffff") canvas.pack() turtleScreen = TurtleScreen(canvas) turtleScreen.bgcolor("gray") turtleScreen.tracer(0,0) pl = [] for i in range(player_N): #プレイヤーの生成 random.seed() window_h = turtleScreen.window_height()/2 window_w = turtleScreen.window_width()/2 x = random.uniform(-window_w,window_w) y = random.uniform(-window_h,window_h) m = random.uniform(1,5) R = 600 pl_type = random.choice(["high_level_predator","middle_level_predator","low_level_predator","producer"]) k_high = random.uniform(0,150) k_middle = random.uniform(0,150) k_low = random.uniform(0,150) k_producer = random.uniform(0,150) if pl_type == "high_level_predator": #k_high = 0 pass elif pl_type == "middle_level_predator": k_middle = 0 k_high *= -1 elif pl_type == "low_level_predator": #k_low = 0 k_high *= -1 k_middle *= -1 elif pl_type == "producer": #k_producer = 0 k_high *= -1 k_middle *= -1 k_low *= -1 pl.append(Player(turtleScreen,pl_type,(x,y),k_high,k_middle,k_low,k_producer,m,R)) turtleScreen.update() #time.sleep(1) while(1): for me in turtleScreen.turtles(): me.acc -= me.acc for you in turtleScreen.turtles(): r = you.pos()-me.pos() r_d = abs(r) if me != you and r_d<me.R and you.isvisible(): me.acc += (me.get_K(you)/(me.m*pow(r_d,3)))*r if me.strengthpower == you.strengthpower: me.acc = 0.3*me.acc+0.7*((r_d/me.R)*me.acc + ((me.R-r_d)/me.R)*you.acc) if r_d<10 : if me.strengthpower > you.strengthpower: you.hiding() me.energy += you.energy me.v -= 1.1*me.v elif me.strengthpower == you.strengthpower: me.v = -0.1*r me.v += me.acc if abs(me.v)>10: me.v = me.v*(10/abs(me.v)) me.setpos(me.pos()+me.v) if me.xcor()<-600 or me.xcor()>600 or me.ycor()<-350 or me.ycor()>350: me.v = (-0.5/abs(me.pos()))*me.pos() me.acc -= me.acc #print(me.energy) turtleScreen.update() time.sleep(0.01)
q = RawTurtle(s2) p.color("red", "white") p.width(3) q.color("blue", "black") q.width(3) for t in p,q: t.shape("turtle") t.lt(36) q.lt(180) for i in range(5): for t in p, q: t.fd(50) t.lt(72) for t in p,q: t.lt(54) t.pu() t.bk(50) ## Want to get some info? print s1, s2 print p, q print s1.turtles() print s2.turtles() TK.mainloop()
q = RawTurtle(s2) p.color("red", "white") p.width(3) q.color("blue", "black") q.width(3) for t in p, q: t.shape("turtle") t.lt(36) q.lt(180) for i in range(5): for t in p, q: t.fd(50) t.lt(72) for t in p, q: t.lt(54) t.pu() t.bk(50) ## Want to get some info? print s1, s2 print p, q print s1.turtles() print s2.turtles() TK.mainloop()