Python turtle 生成鸡哥动图,以及对鸡哥图片的爬取(附源码,注释)

大一上学期Python大作业:
简述:
一. python turtle 库绘图,并实现动图效果
(1)篮球召唤阵
(2)铁山靠及打球
(3)哥哥投篮
(4)对鸽鸽的真心
二. 爬虫爬取鸡哥图片
(1)爬取图片
图片展示:
12
3
4
爬虫

温馨提示:#输入0:篮球召唤阵、铁山靠和打篮球,输入1:爬虫,

代码展示:

import turtle as t
import random as ra
import warnings
import time
import datetime
import re
import os
import requests
from bs4 import BeautifulSoup
#输入0:篮球召唤阵、铁山靠和打篮球,输入1:爬虫,
warnings.filterwarnings('ignore')
ys=['red','orange','yellow','green','blue','cyan','purple','gold','pink','peru']
c=eval(input(''))
def y():#随机生成颜色
    return ra.choice(ys)
def mb():#开始记录
    t.penup()
    t.home()
    t.begin_poly()
def me(pn):#结束
    t.end_poly()
    poly = t.get_poly()
    t.register_shape(pn, poly)
def xl(p):#模拟球的反弹效果
    for i in range(p):
        a.fd(i/25)
    for i in range(p-25):
        a.bk(p/25-1-i/30)
def pq():#拍球
    a.showturtle()
    for i in range(2):
        for i in range(100):
            a.fd(i/25)
        for i in range(100):
            a.bk(4-i/25-0.13)
def yq():#运球
    a.showturtle()
    for i in range(2):
        a.lt(45)
        for i in range(118):
            a.fd(i/25)
        a.lt(90)
        jg.bk(610)
        for i in range(118):
            a.fd(118/25-i/25)
        for i in range(118):
            a.bk(i/25)
        a.lt(90)
        jg.fd(610)
        for i in range(118):
            a.fd(118/25-i/25)
        a.left(135)
def yl():#投球
    a.hideturtle()
    a.left(161)
    a.showturtle()
    for i in range(110):
        if i<=50:
            a.fd(7-i/50)
            a.right(1)
        else:
            a.fd(5+i/50)
            a.right(1) 
    a.right(50)
    xl(135)
    xl(118)
    a.forward(100)
    a.hideturtle()
    a.home()
    a.showturtle()
def f(a,b,y=10):#画箭,a,b为箭尖坐标
    global l
    l=y
    t.penup()
    t.goto(a,b)
    t.pendown()
    t.pencolor("pink")#画半颗爱心
    t.fillcolor("pink")
    t.begin_fill()
    t.fd(4*y)
    t.circle(2*y,180)
    t.right(135)
    t.penup()
    t.fd(8.5*y)
    t.pensize(0.9*y)
    t.pencolor('NavajoWhite3')
    for i in range(3):#画箭羽
        t.penup()
        t.fd(1.5*y)
        t.pendown()
        t.left(45)
        for z in range(2):
            t.fd(3*y)
            t.bk(3*y)
            t.right(90)
        t.left(135)
    t.pensize(0.6*y)#画箭体
    t.pencolor('brown4')
    t.bk(13*y)
    t.left(45)
    t.pencolor("pink")#画另外半颗爱心
    t.fillcolor("pink")
    t.pensize(0.1*y)
    t.circle(2*y,180)
    t.fd(4*y)
    t.end_fill()
    def z(x,m,z):#画内层爱心,x为距离,m为大小,z为颜色, x+y应为4*y
        t.penup()
        t.bk(x)
        t.left(90)
        t.fd(x)
        t.fillcolor(z)
        t.begin_fill()
        t.fd(m)
        t.circle(m/2,180)
        t.right(90)
        t.circle(m/2,180)
        t.fd(m)
        t.end_fill()
        t.penup()
        t.fd(x)
        t.left(90)
        t.bk(x)
        t.right(90)
    z(y,3*y,'red')
    z(2*y,2*y,'red3')
    z(3*y,y,'red4')
    t.left(90)    
def il(a,b,c
好的,这里是 `freegames.maze` 的 Python 源码注释: ```python """ Maze game. Exercises 1. Keep score by counting taps. 2. Make the maze harder. 3. Generate the maze procedurally. 4. Make the maze a different shape. 5. Add multiple players. 6. Move the players with the arrow keys. 7. Add monsters that move randomly. 8. Add a prize that must be collected. 9. Add sound effects. 10. Add background music. """ from random import random from turtle import * from freegames import line def draw(): "Draw maze." color('black') # 设置画笔颜色为黑色 width(5) # 设置画笔宽度为 5 for x in range(-200, 200, 40): # 绘制竖直线条 for y in range(-200, 200, 40): if random() > 0.5: # 有一半的概率不绘制线条 line(x, y, x + 40, y + 40) else: line(x, y + 40, x + 40, y) update() # 更新画布 def tap(x, y): "Draw line and dot for screen tap." if abs(x) > 198 or abs(y) > 198: # 如果点击的点超出了迷宫范围 up() # 抬起画笔 return down() # 放下画笔 color('red') # 设置画笔颜色为红色 dot(2) # 绘制一个小点 line(round(x, 40), round(y, 40)) # 绘制一条线段 update() # 更新画布 setup(420, 420, 370, 0) # 设置画布大小和位置 hideturtle() # 隐藏海龟 tracer(False) # 不显示绘制过程 draw() # 绘制迷宫 onscreenclick(tap) # 绑定鼠标点击事件 done() # 运行游戏 ``` 这个程序的主要作用是绘制一个迷宫,并且允许用户通过鼠标点击来画出一条线段,以此来找到迷宫的出口。程序中使用了 `turtle` 库来绘制迷宫和线段,还使用了 `freegames` 库中的 `line()` 函数来绘制线段。程序中包含了一些练习,可以让用户尝试扩展程序的功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随遇l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值