Skip to content

Commit 7e07bbb

Browse files
authored
Add files via upload
1 parent 5393612 commit 7e07bbb

File tree

2 files changed

+303
-0
lines changed

2 files changed

+303
-0
lines changed

extra/rainbow.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import turtle
2+
3+
rainbow = ["red", "tomato", "orangered", "coral", "darkorange", "orange", "gold", "yellow", "lawngreen", "greenyellow", "lime", "aquamarine", "cyan", "deepskyblue", "dodgerblue", "blue", "blueviolet", "violet", "fuchsia", "deeppink"]
4+
5+
shape = input("What shape of spiral would you like to draw? (square, circle, triangle) ").lower()
6+
color = input("What color would you like your spiral to be? ")
7+
thickness = int(input("How thick would you like your spiral to be? "))
8+
9+
if color in rainbow:
10+
pass
11+
else:
12+
color = rainbow[0]
13+
14+
screen = turtle.Screen()
15+
spiral = turtle.Turtle()
16+
spiral.pensize(thickness)
17+
18+
19+
if shape == "circle":
20+
for count, i in enumerate(rainbow):
21+
if count >= len(rainbow):
22+
spiral.pencolor(i)
23+
else:
24+
spiral.pencolor(i)
25+
26+
spiral.forward(count / 4)
27+
spiral.right(15)
28+
29+
elif shape == "square":
30+
for i in range (0, 360, 1):
31+
if(color == "rainbow"):
32+
r = r + 1
33+
if(r >= len(rainbow)):
34+
r = 0
35+
spiral.pencolor(rainbow[r])
36+
else:
37+
spiral.pencolor(color)
38+
39+
spiral.forward(i * 10)
40+
spiral.right(90)
41+
elif(shape == "triangle"):
42+
for i in range (0, 360, 1):
43+
if(color == "rainbow"):
44+
r = r + 1
45+
if(r >= len(rainbow)):
46+
r = 0
47+
spiral.pencolor(rainbow[r])
48+
else:
49+
spiral.pencolor(color)
50+
51+
spiral.forward(i * 20)
52+
spiral.left(120)
53+
54+
55+
input()

extra/spaceGame_v4.py

+248
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
import turtle
2+
import time
3+
4+
screen = turtle.Screen()
5+
6+
def gameloop():
7+
p1.clear()
8+
p2.clear()
9+
10+
p1.move()
11+
for b in p1.bullets:
12+
b.move()
13+
14+
p2.move()
15+
for b in p2.bullets:
16+
b.move()
17+
18+
p1.turtle.fd(1)
19+
p2.turtle.fd(1)
20+
21+
p1.drawShip()
22+
for b in p1.bullets:
23+
b.drawBullet()
24+
25+
p2.drawShip()
26+
for b in p2.bullets:
27+
b.drawBullet()
28+
29+
if p1.isAccelerating:
30+
p1.speed += 1
31+
p1.turtle.fd(p1.speed)
32+
33+
if p2.isAccelerating:
34+
p2.speed += 1
35+
p2.turtle.fd(p2.speed)
36+
37+
turtle.update() # refresh screen
38+
screen.ontimer(gameloop, 20)
39+
40+
def wPressed():
41+
p1.isAccelerating = True
42+
43+
def wReleased():
44+
p1.isAccelerating = False
45+
46+
def upArrowPressed():
47+
p2.isAccelerating = True
48+
49+
def upArrowReleased():
50+
p2.isAccelerating = False
51+
52+
class Player:
53+
MAX_SPEED = 10
54+
ROTATION_SPEED = 5
55+
MAX_BULLETS = 10
56+
57+
def __init__(self, color, position, heading):
58+
self.isAlive = True
59+
self.isReadyToFire = True
60+
self.isAccelerating = False
61+
self.isTurningLeft = False
62+
self.isTurningRight = False
63+
self.speed = 0
64+
self.color = color
65+
self.turtle = turtle.Turtle()
66+
self.turtle.ht()
67+
self.turtle.speed(0)
68+
self.turtle.setpos(position)
69+
self.turtle.setheading(heading)
70+
self.bullets = list()
71+
72+
def move(self):
73+
# Rotate
74+
if self.isTurningLeft:
75+
self.turtle.left(Player.ROTATION_SPEED)
76+
if self.isTurningRight:
77+
self.turtle.right(Player.ROTATION_SPEED)
78+
79+
# Accelerate
80+
if self.isAccelerating:
81+
self.speed += 0.5
82+
else:
83+
self.speed -= 0.5
84+
85+
if self.speed > Player.MAX_SPEED:
86+
self.speed = Player.MAX_SPEED
87+
elif self.speed < 0:
88+
self.speed = 0
89+
90+
# Move Forward
91+
self.turtle.fd(self.speed)
92+
93+
def fire(self):
94+
if not self.isAlive : return
95+
96+
self.bullets.append(Bullet(self))
97+
if len(self.bullets) > Player.MAX_BULLETS:
98+
self.bullets[0].turtle.clear()
99+
self.bullets.pop(0)
100+
101+
def clear(self):
102+
self.turtle.clear()
103+
for b in self.bullets:
104+
b.turtle.clear()
105+
106+
def drawShip(self):
107+
if not self.isAlive : return
108+
109+
t = self.turtle
110+
startPos = t.pos()
111+
startHeading = t.heading()
112+
113+
# DRAW BODY
114+
t.fillcolor(self.color)
115+
t.pencolor(self.color);
116+
t.begin_fill()
117+
t.pu()
118+
t.fd(15)
119+
t.pd()
120+
t.rt(30 + 120)
121+
t.fd(40)
122+
t.rt(120)
123+
t.fd(40)
124+
t.rt(120)
125+
t.fd(40)
126+
t.end_fill()
127+
128+
# RESET TURTLE
129+
t.pu()
130+
t.setpos(startPos)
131+
t.setheading(startHeading)
132+
133+
# DRAW COCKPIT
134+
t.fillcolor("black")
135+
t.pencolor("black");
136+
t.begin_fill()
137+
t.pu()
138+
t.fd(3)
139+
t.lt(90)
140+
t.pd()
141+
t.circle(6)
142+
t.end_fill()
143+
144+
# RESET TURTLE
145+
t.pu()
146+
t.setpos(startPos)
147+
t.setheading(startHeading)
148+
149+
class Bullet:
150+
SPEED = 100
151+
152+
def __init__(self, owner):
153+
self.owner = owner
154+
self.turtle = turtle.Turtle()
155+
self.turtle.ht()
156+
self.turtle.speed(0)
157+
self.turtle.setpos(owner.turtle.pos())
158+
self.turtle.setheading(owner.turtle.heading())
159+
160+
def move(self):
161+
steps = 10
162+
stepSpeed = Bullet.SPEED / steps
163+
164+
if self.owner == p1 : enemy = p2
165+
else : enemy = p1
166+
167+
for i in range(steps):
168+
self.turtle.fd(stepSpeed)
169+
170+
if self.hittest(enemy) :
171+
print("Game Over!")
172+
enemy.isAlive = False
173+
174+
def hittest(self, other):
175+
return self.turtle.distance(other.turtle) < 10
176+
177+
def drawBullet(self):
178+
t = self.turtle
179+
startPos = t.pos()
180+
startHeading = t.heading()
181+
t.fillcolor("white")
182+
t.pencolor("white")
183+
t.begin_fill()
184+
t.pd()
185+
t.fd(1)
186+
t.lt(90)
187+
t.circle(2)
188+
t.end_fill()
189+
190+
t.pu()
191+
t.setpos(startPos)
192+
t.setheading(startHeading)
193+
194+
# Player 1 Event Handlers
195+
def wPressed(): p1.isAccelerating = True
196+
def wReleased(): p1.isAccelerating = False
197+
def aPressed(): p1.isTurningLeft = True
198+
def aReleased(): p1.isTurningLeft = False
199+
def dPressed(): p1.isTurningRight = True
200+
def dReleased(): p1.isTurningRight = False
201+
def spacePressed() :
202+
if p1.isReadyToFire :
203+
p1.fire()
204+
p1.isReadyToFire = False
205+
def spaceReleased() : p1.isReadyToFire = True
206+
207+
# Player 2 Event Handlers
208+
def upArrowPressed(): p2.isAccelerating = True
209+
def upArrowReleased(): p2.isAccelerating = False
210+
def leftArrowPressed(): p2.isTurningLeft = True
211+
def leftArrowReleased(): p2.isTurningLeft = False
212+
def rightArrowPressed(): p2.isTurningRight = True
213+
def rightArrowReleased(): p2.isTurningRight = False
214+
def mouseClicked(x, y): p2.fire()
215+
216+
screen.bgcolor("black")
217+
218+
p1 = Player("blue", (-200, -200), 90)
219+
p2 = Player("red", (200, 200), 270)
220+
221+
p1.turtle.fd(p1.speed)
222+
p2.turtle.fd(p2.speed)
223+
224+
turtle.tracer(0, 0) # disable automatic screen refreshing
225+
226+
# Player 1 Event Listeners
227+
screen.onkeypress(wPressed, "w")
228+
screen.onkeyrelease(wReleased, "w")
229+
screen.onkeypress(aPressed, "a")
230+
screen.onkeyrelease(aReleased, "a")
231+
screen.onkeypress(dPressed, "d")
232+
screen.onkeyrelease(dReleased, "d")
233+
screen.onkeypress(spacePressed, "space")
234+
screen.onkeyrelease(spaceReleased, "space")
235+
236+
# Player 2 Event Listeners
237+
screen.onkeypress(upArrowPressed, "Up")
238+
screen.onkeyrelease(upArrowReleased, "Up")
239+
screen.onkeypress(leftArrowPressed, "Left")
240+
screen.onkeyrelease(leftArrowReleased, "Left")
241+
screen.onkeypress(rightArrowPressed, "Right")
242+
screen.onkeyrelease(rightArrowReleased, "Right")
243+
screen.onclick(mouseClicked)
244+
245+
screen.listen()
246+
247+
gameloop()
248+

0 commit comments

Comments
 (0)