-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvehicles.py
98 lines (83 loc) · 2.25 KB
/
vehicles.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# graspcoding.com
from random import randint
import time
class Car:
tracks=[]
def __init__(self,i,xi,yi,max_age):
self.i=i
self.x=xi
self.y=yi
self.tracks=[]
self.R=randint(0,255)
self.G=randint(0,255)
self.B=randint(0,255)
self.done=False
self.state='0'
self.age=0
self.max_age=max_age
self.dir=None
def getRGB(self): #For the RGB colour
return (self.R,self.G,self.B)
def getTracks(self):
return self.tracks
def getId(self): #For the ID
return self.i
def getState(self):
return self.state
def getDir(self):
return self.dir
def getX(self): #for x coordinate
return self.x
def getY(self): #for y coordinate
return self.y
def updateCoords(self, xn, yn):
self.age = 0
self.tracks.append([self.x, self.y])
self.x = xn
self.y = yn
def setDone(self):
self.done = True
def timedOut(self):
return self.done
def going_UP(self, mid_start, mid_end):
if len(self.tracks)>=2:
if self.state=='0':
if self.tracks[-1][1]<mid_end and self.tracks[-2][1]>=mid_end:
state='1'
self.dir='up'
return True
else:
return False
else:
return False
else:
return False
def going_DOWN(self,mid_start,mid_end):
if len(self.tracks)>=2:
if self.state=='0':
if self.tracks[-1][1]>mid_start and self.tracks[-2][1]<=mid_start:
start='1'
self.dir='down'
return True
else:
return False
else:
return False
else:
return False
def age_one(self):
self.age+=1
if self.age>self.max_age:
self.done=True
return True
#Class2
class MultiCar:
def __init__(self,cars,xi,yi):
self.cars=cars
self.x=xi
self.y=yi
self.tracks=[]
self.R=randint(0,255)
self.G=randint(0,255)
self.B=randint(0,255)
self.done=False