コード例 #1
1
def main():
    ## create compound yellow/blue turtleshape for planets
    global s
    s = Screen()
    s.setup(1120,840)
    s.reset()
    s.tracer(0, 0)
    t = Turtle()
    t.ht()
    t.pu()
    t.fd(6)
    t.lt(90)

    t.begin_poly()
    t.circle(6, 180)
    t.end_poly()
    m1 = t.get_poly()

    t.begin_poly()
    t.circle(6,180)
    t.end_poly()
    m2 = t.get_poly()

    planetshape = Shape("compound")
    planetshape.addcomponent(m1,"orange")
    planetshape.addcomponent(m2,"blue")
    s.register_shape("planet", planetshape)
    #s.tracer(1,0)
    s.update()
    ## setup gravitational system
    gs = GravSys()
    sun = Star(1000000, Vec(-250,0), Vec(0,-0.35), gs, "circle")
    sun.color("yellow")
    sun.pensize(1.8)
    sun.pu()
    earth = Star(5000, Vec(450,0), Vec(0,70), gs, "planet")
    earth.pencolor("green")
    earth.shapesize(0.8)

    rm=12.0583
    vm=(8.0*5000/rm)**.5
    moon = Star(1, Vec(450+rm,0), Vec(0,70+vm), gs, "planet")
    moon.pencolor("blue")
    moon.shapesize(0.5)
    gs.init()
    gs.start()
    return "Done!"
コード例 #2
0
def main():
    e = Turtle()
    s = Screen()
    s.setup(800, 600)
    s.bgcolor('gray6')
    s.reset()
    e.pensize(3)
    for i in range(1, 31):
        e.pencolor(1.0, 0.0 + (i / 50), 0.0)
        e.left(90 / i)
        drawsq(e, 200)
    return "DONE! :-)"
コード例 #3
0
def main():
    global d, SHS, SF, A
    A = 42 # answer to the ultimate question ... (you know)
    SHS = A / 20.
    SF = 1.0
    DSF = 1.0038582416
    s = Screen()
    s.setup(800, 600)
    s.reset()
    s.tracer(0)
    d = Turtle(visible=False)
    for i in range(6):
        d.fd(500)
        d.bk(500)
        d.left(60)   

    triangles = []
    for c in range(-5,6,2):
        if abs(c) != 1:
            triangles.append(TriTurtle(c, 1, 1))
            triangles.append(TriTurtle(c, -1, 2))
    for c in range(-4,5,2):
        if c != 0:
            triangles.append(TriTurtle(c, 2, 2))
            triangles.append(TriTurtle(c, -2, 1))
        triangles.append(TriTurtle(c, -4, 2))
        triangles.append(TriTurtle(c, 4, 1))
    for c in range(-3,4,2):
        triangles.append(TriTurtle(c, 5, 2))
        triangles.append(TriTurtle(c, -5, 1))
        triangles.append(TriTurtle(c, -7, 2))
        triangles.append(TriTurtle(c, 7, 1))
    for c in range(-2,3,2):
        triangles.append(TriTurtle(c, 8, 2))
        triangles.append(TriTurtle(c, -8, 1))
    for c in (-1, 1):
        triangles.append(TriTurtle(c, 1, 1))
        triangles.append(TriTurtle(c, -1, 2))
    triangles.append(TriTurtle(0, 2, 2))
    triangles.append(TriTurtle(0, -2, 1))
    s.tracer(1)
                         
    for phi in range(1,361):
        SF = SF*DSF
        s.tracer(0)
        for t in triangles:
            t.setturn(phi)
        #s.tracer(1)
        s.update()
    return "DONE!"
コード例 #4
0
ファイル: main.py プロジェクト: serat1/31-days-of-code
def main():
    app = Screen()
    app.reset()
    app.clear()

    setup_app(app)
    app.tracer(0)
    snake = Snake()

    change_snake_colors(app, snake)

    app.listen()
    play_game(app, snake)
    app.mainloop()
コード例 #5
0
def main():
    e = Turtle()
    s = Screen()
    s.setworldcoordinates(-4, -2, 4, 2)
    s.bgcolor('gray12')
    s.reset()
    e.shapesize(2, 2, 2)
    e.pencolor('grey45')
    e.pensize(4)
    line(-4, 0, 4, 0, e)
    line(0, -2, 0, 2, e)
    graph(sin, e, 'red')
    graph(cos, e, 'yellow')
    return "DONE! :-)"
コード例 #6
0
def main():
    global d, SHS, SF, A
    A = 42  # answer to the ultimate question ... (you know)
    SHS = A / 20.
    SF = 1.0
    DSF = 1.0038582416
    s = Screen()
    s.setup(800, 600)
    s.reset()
    s.tracer(0)
    d = Turtle(visible=False)
    for i in range(6):
        d.fd(500)
        d.bk(500)
        d.left(60)

    triangles = []
    for c in range(-5, 6, 2):
        if abs(c) != 1:
            triangles.append(TriTurtle(c, 1, 1))
            triangles.append(TriTurtle(c, -1, 2))
    for c in range(-4, 5, 2):
        if c != 0:
            triangles.append(TriTurtle(c, 2, 2))
            triangles.append(TriTurtle(c, -2, 1))
        triangles.append(TriTurtle(c, -4, 2))
        triangles.append(TriTurtle(c, 4, 1))
    for c in range(-3, 4, 2):
        triangles.append(TriTurtle(c, 5, 2))
        triangles.append(TriTurtle(c, -5, 1))
        triangles.append(TriTurtle(c, -7, 2))
        triangles.append(TriTurtle(c, 7, 1))
    for c in range(-2, 3, 2):
        triangles.append(TriTurtle(c, 8, 2))
        triangles.append(TriTurtle(c, -8, 1))
    for c in (-1, 1):
        triangles.append(TriTurtle(c, 1, 1))
        triangles.append(TriTurtle(c, -1, 2))
    triangles.append(TriTurtle(0, 2, 2))
    triangles.append(TriTurtle(0, -2, 1))
    s.tracer(1)

    for phi in range(1, 361):
        SF = SF * DSF
        s.tracer(0)
        for t in triangles:
            t.setturn(phi)
        s.tracer(1)
    return "DONE!"
コード例 #7
0
def main():
    ## create compound yellow/blue turtleshape for planets
    global s
    s = Screen()
    s.setup(1120, 840)
    s.reset()
    s.tracer(0, 0)
    t = Turtle()
    t.ht()
    t.pu()
    t.fd(6)
    t.lt(90)

    t.begin_poly()
    t.circle(6, 180)
    t.end_poly()
    m1 = t.get_poly()

    t.begin_poly()
    t.circle(6, 180)
    t.end_poly()
    m2 = t.get_poly()

    planetshape = Shape("compound")
    planetshape.addcomponent(m1, "orange")
    planetshape.addcomponent(m2, "blue")
    s.register_shape("planet", planetshape)
    s.update()
    ## setup gravitational system
    gs = GravSys()
    sun = Star(1000000, Vec(-250, 0), Vec(0, -0.35), gs, "circle")
    sun.color("yellow")
    sun.pensize(1.8)
    sun.pu()
    earth = Star(5000, Vec(450, 0), Vec(0, 70), gs, "planet")
    earth.pencolor("green")
    earth.shapesize(0.8)

    rm = 12.0583
    vm = (8.0 * 5000 / rm)**.5
    moon = Star(1, Vec(450 + rm, 0), Vec(0, 70 + vm), gs, "planet")
    moon.pencolor("blue")
    moon.shapesize(0.5)
    gs.init()
    gs.start()
    s.tracer(True)
    return "Done!"
コード例 #8
0
def main():
    turtle = Turtle()
    screen = Screen()
    screen.setworldcoordinates(-4, -2.5, 4, 2.5)
    screen.bgcolor('gray12')
    screen.reset()
    turtle.shapesize(1, 1, 1)
    turtle.pencolor('grey45')
    turtle.pensize(4)
    turtle.speed("fast")

    # Draw grid
    x = -4
    while x <= 4.1:
        turtle.goto(x, 0)
        if round(x, 3) % 1 == 0:
            turtle.goto(x, 0.4)
            turtle.goto(x, -0.4)
        turtle.goto(x, 0)
        x += 0.2
        print("x =", round(x, 4))

    turtle.penup()
    x = 0
    y = -2
    while y <= 2:
        turtle.goto(0, y)
        turtle.pendown()
        if round(y, 3) % 1 == 0:
            turtle.goto(0.4, y)
            turtle.goto(-0.4, y)
        turtle.goto(0, y)
        y += 0.2
    turtle.pencolor('red')

    # Move turtle to start point
    x = -4
    turtle.penup()
    turtle.goto(x, 0)
    turtle.pendown()

    # Draw graph
    while x <= 4:
        turtle.goto(x, sin(x))
        x += 0.1
    return "DONE! :-)"
コード例 #9
0
game_screen.onkey(user_paddle.move_right, "Right")

# ens the game when the space bar is pressed
game_screen.onkey(end_game, "space")

while game_on:

    game_screen.update()
    sleep(0.1)

    if game_ball.ycor() < -300:

        scores.losing_message()
        sleep(2)

        game_screen.reset()

        # a new game ball
        game_ball.create_ball()

        # rebuild new block
        game_blocks.build_blocks()

        # reset the scoreboard
        scores.user_score = 0
        scores.display_score()

        # reset the user paddle
        user_paddle.create_paddle((0, -200))

    else:
コード例 #10
0
        self.shapesize(SHS, SHS, 1)
        self.D = self.distance(0, 0)
        self.e = (1 / self.D) * self.pos()

    def setturn(self, phi):
        self.goto(SF * self.D * dsin(90 - phi) * self.e)
        self.settiltangle(phi * self.f)
        self.shapesize(SHS * SF)
        if abs(self.c) + abs(self.r) > 2:
            self.fillcolor([x + (1 - x) * phi / 360 for x in self.basecolor])
            bc = phi / 360.
            self.pencolor(bc, bc, bc)


s = Screen()
s.reset()
s.tracer(0)
d = Turtle(visible=False)
lines(500)

triangles = []
for c in range(-5, 6, 2):
    triangles.append(TriTurtle(c, 1, 1))
    triangles.append(TriTurtle(c, -1, 2))
for c in range(-4, 5, 2):
    triangles.append(TriTurtle(c, 2, 2))
    triangles.append(TriTurtle(c, -2, 1))
    triangles.append(TriTurtle(c, -4, 2))
    triangles.append(TriTurtle(c, 4, 1))
for c in range(-3, 4, 2):
    triangles.append(TriTurtle(c, 5, 2))
コード例 #11
0
        self.goto(c*A, r*A*3**.5/3)
        self.shapesize(SHS, SHS, 1)
        self.D = self.distance(0,0)
        self.e = (1/self.D)*self.pos()
    def setturn(self, phi):
        self.goto(SF*self.D*dsin(90-phi)*self.e)
        self.settiltangle(phi*self.f)
        self.shapesize(SHS*SF)
        if abs(self.c) + abs(self.r) > 2:
            self.fillcolor([x + (1-x)*phi/360 for x in self.basecolor])
            bc = phi/360.
            self.pencolor(bc, bc, bc)
            

s = Screen()
s.reset()
s.tracer(0)
d = Turtle(visible=False)
lines(500)

triangles = []
for c in range(-5,6,2):
    triangles.append(TriTurtle(c, 1, 1))
    triangles.append(TriTurtle(c, -1, 2))
for c in range(-4,5,2):
    triangles.append(TriTurtle(c, 2, 2))
    triangles.append(TriTurtle(c, -2, 1))
    triangles.append(TriTurtle(c, -4, 2))
    triangles.append(TriTurtle(c, 4, 1))
for c in range(-3,4,2):
    triangles.append(TriTurtle(c, 5, 2))
コード例 #12
0
ファイル: workspace.py プロジェクト: leson238/python
class WorkSpace:
    def __init__(self, k, r, c, v):
        self.canvas = Screen()
        self.size = int(k / 4 * 6) * 10
        self.canvas.setup(width=self.size, height=self.size)
        self.canvas.setworldcoordinates(-1, -1, self.size, self.size)
        self._add_particles(k, r, c, v)
        self._active_list = self.particles.copy()
        self.v = v

    def _add_particles(self, k, r, c, v):
        self.particles = []
        init_pos = (self.size // 2, self.size // 2)
        for i in range(k):
            p = Particle(radius=r, color=c, velocity=v)
            self.particles.append(p)
        i = 0
        for p in self.particles:
            r = random()
            x = 0
            if i <= k // 4:
                p.set_initial_pos((init_pos[0] + i * 30 + r * x,
                                   init_pos[1] + i * 30 + r * x))
            elif i <= k // 2:
                p.set_initial_pos((init_pos[0] - (i - k // 4) * 30 - r * x,
                                   init_pos[1] - (i - k // 4) * 30 - r * x))
            elif i <= 3 * k // 4:
                p.set_initial_pos((init_pos[0] + (i - k // 2) * 30 + r * x,
                                   init_pos[1] - (i - k // 2) * 30 - r * x))
            else:
                p.set_initial_pos(
                    (init_pos[0] - (i - 3 * k // 4) * 30 - r * x,
                     init_pos[1] + (i - 3 * k // 4) * 30 + r * x))
            i += 1
            p.draw()

    def move_all(self, step):
        t = Turtle()
        t.ht()
        s = step
        while step > 0:
            t.write(f'Step: {abs(step-s-1)} Active Red: {self._red_left()}')
            t.clear()
            for p in self.particles:
                self._move_one(p)
                p.draw()
            for p in self.particles:
                if p in self._active_list:
                    self.change_color(p)
            step -= 1
        os.system("pause")
        self.canvas.reset()

    def _move_one(self, p):
        cx, cy = p.get_current_pos()
        dx, dy = self._generate_vector()
        if cx + dx < p.radius or cx + dx > self.size - p.radius:
            dx = -dx
        if cy + dy < p.radius or cy + dy > self.size - p.radius:
            dy = -dy
        p.move((cx + dx, cy + dy))
        turtle.stamp()

    def _red_left(self):
        r = 0
        for p in self.particles:
            if p.color == 'red':
                r += 1
        return r

    def change_color(self, curr):
        curr_pos = curr.get_current_pos()
        self._active_list = [p for p in self._active_list if p.color != 'blue']
        for p in self._active_list:
            if p is curr:
                continue
            elif self.collide(curr_pos, p.get_current_pos()):
                curr.set_color('blue')
                p.set_color('blue')

    def collide(self, pos1, pos2):
        if (pos1[0] - pos2[0])**2 + (pos1[1] - pos2[1])**2 < (self.v)**2:
            return True
        return False

    def _generate_vector(self):
        random_angle = random() * pi * 2
        return (self.v * cos(random_angle), self.v * sin(random_angle))
コード例 #13
0
ファイル: main.py プロジェクト: BaoLocPham/ThePongGame
            winsound.PlaySound(resource_path("sound/correct.wav"),
                               winsound.SND_ASYNC)
            ball.refresh()
            scoreboard.increase_right()
            if scoreboard.rScore == 3:
                game_over = True
            time.sleep(1)

        # detect collision with paddle
        if ball.distance(rP) < 50 and ball.xcor() > 340 or ball.distance(
                lP) < 50 and ball.xcor() < -340:
            ball.bouncing_paddle()
            winsound.PlaySound(resource_path("sound/bouncing.wav"),
                               winsound.SND_ASYNC)

    scoreboard.print_final()
    winsound.PlaySound(resource_path("sound/happynes.wav"), winsound.SND_ASYNC)


while True:
    game_on()
    time.sleep(1)
    cont = screen.textinput("Continue?", prompt="Continue?(yes or no)").lower()
    if cont == 'yes':
        screen.reset()
        continue
    else:
        screen.clear()
        break

screen.exitonclick()