少儿编程-覃宏新

cls09-绘制电路

import turtle
turtle.pensize(4)
turtle.pencolor("yellow")
turtle.fillcolor("green")
turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(50)
turtle.left(90)
turtle.end_fill()


turtle.penup()
turtle.goto(0,25)
turtle.pendown()
turtle.backward(150)
turtle.right(-90)
turtle.forward(200)
turtle.right(90)
turtle.forward(150)

a="true"
if a=="true":
    turtle.dot(100,"yellow")
    if a=="false":
        turtle.dot(100,"black")

turtle.penup()
turtle.goto(50,225)
turtle.pendown()
turtle.forward(120)
turtle.right(90)
turtle.forward(200)
turtle.right(90)
turtle.forward(70)
turtle.done()

单词检查机

q = True
n_w_lst = {"老师":"teacher","学生":"student","男孩":"boy","女孩":"girl","前进":"forward"}
while q:
    c_w_lst=n_w_lst.copy()
    n_w_lst.clear()
    for key,value in c_w_lst.items():
        result = input("{}所对的单词是".format(key))
        if result == value:
            print("回答正了")
        else:
            print("回答错误,正确答案是{}".format(value))
            n_w_lst[key] = value
    if n_w_lst:
        result = input("还有没答对的,是否继续")
        if result == "yes":
            pass
        else:
            q = False
    else:
        q = False
print("恭喜全部正确")


绘制机器猫

import turtle
def face():
    turtle.fillcolor("blue")
    turtle.begin_fill()
    turtle.circle(100,360)
    turtle.end_fill()
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.circle(80, 360)
    turtle.end_fill()
def eye():
    turtle.left(90)
    turtle.penup()
    turtle.goto(-10,160)
    turtle.pendown()
    turtle.fillcolor("white")
    turtle.begin_fill()
    turtle.circle(15,360)
    turtle.end_fill()
    












face()
eye()
turtle.done()

DIY计算器

def isnum(a):
    if a not in "+-*/":
        return True
    return False
def spiltCal(content):
    numlst = []
    oplst = []
    index_last = 0
    index_now = 0
    for i in range(len(content)):
        index_now = i
        if isnum(content[i]):
            if i == len(content)-1:
                numlst.append(float(content[index_last:]))
        else:
            if content[i] == ".":
                pass
            else:
                numlst.append(float(content[index_last:index_now]))
                oplst.append(content[index_now])
                index_last = index_now+1
    return numlst,oplst

turtle画板

import turtle

p = turtle.Pen()
a = ("red", "blue", "yellow", "black")
b = ((400, 200), (400, 170), (400, 140), (400, 110))


def draw():
    for i in range(4):
        turtle.penup()
        turtle.goto(b[i])
        turtle.down()
        turtle.pencolor(a[i])
        turtle.dot(30)


def up():
    p.sety(p.ycor() + 10)


def down():
    p.sety(p.ycor() - 10)


def left():
    p.setx(p.xcor() - 10)


def right():
    p.setx(p.xcor() + 10)


draw()

turtle.onkeypress(up, "Up")
turtle.onkeypress(down, "Down")
turtle.onkeypress(left, "Left")
turtle.onkeypress(right, "Right")
turtle.listen()
turtle.done()

知识问答

import turtle
import time


question_list = []
answer_list = []
option_list = []
position_list = []
question_pen = turtle.Pen()
result_pen = turtle.Pen()
question_index = 0



def init():
    global question_list, answer_list, option_list, position_list, position_pen, result_pen, question_index
    turtle.bgpic("image/背景.png")
    turtle.setup(1000, 1000)
    question_list = ["先有鸡还是先有蛋?", ["老师的单词是什么"]]
    answer_list = ["先有鸡","teacher"]
    option_list = [["A.先有鸡", "B.先有蛋"], ["A.teacher", "B.tacher", "C.techer"]]
    position_list = [[-250, 0], [0, 0], [250, 0]]
    question_index = 0
    question_pen = turtle.Pen()
    question_pen.hideturtle()
    result_pen = turtle.Pen()
    result_pen.penup()
    result_pen.goto(-150, -150)


def drawtext(p, color, text, size=40):
    p.pencolor(color)
    p.write(text, font=("arial", size))


def getquestion(p, index):  # 形参
    p.clear()
    p.penup()
    p.goto(-300, 150)
    if index >= len(question_list):
        p.goto(-50, 0)
        drawtext(p, "green", "已通关")
        return
    drawtext(p, "black", question_list[index])

    for i in range(len(option_list[index])):
        p.penup()
        p.goto(position_list[i][0] - 55, position_list[i][1] + 25)
        drawtext(p, "black", option_list[index][i])
def checkPox(x,y):
    global question_index
    for i in range(len(option_list[question_index])):
        if position_list[i][0] - 80 <x< position_list[i][0]+30 and position_list[i][1] <y< position_list[i][1] +80:
            if option_list[question_index][i].split(".")[1] == answer_list[question_index]:
                question_index +=1
                result(result_pen,"right")
                getquestion(question_pen,question_index)
            else:
                result(result_pen,"wrong")



def result(p,r):
    p.goto(-300,-150)
    if r=="right":
        drawtext(p,"green","回答正确",50)
    else:
        drawtext(p,"red","回答错误",50)
    time.sleep(1)
    p.clear()

turtle.onscreenclick(checkPox)
init()
getquestion(question_pen, question_index)  # 实参
turtle.done()

在这里插入图片描述

波点碰撞

import turtle
import random

turtle.tracer(False)
a = turtle.Pen()

b = [[249, 0], [172, 74], [-123, -65], [-35, -213]]
d = [0, 321]
state = True
def create():
    for i in range(10):
        x = random.randint(-400,400)
        y = random.randint(-400,400)
        b.append([x,y])
def draw():
    a.clear()
    for i in range(len(b)):
        c = b[i]
        a.up()
        a.goto(c)
        a.pendown()
        a.dot(20, "blue")
    a.up()
    a.goto(d)
    a.down()
    a.dot(20, "red")


def move():
    for i in range(len(b)):
        b[i][0] -= 2
        if b[i][0]<=-400:
            b[i][0]=400
            b[i][1]=random.randint(-400,400)
    d[1] -= 4
    if d[1]<=-400:
        d[1]=400

def jump():
    d[1]+=50

def collide():
    """
    判断是否碰撞
    :return:
    """
    global state
    for i in range(len(b)):
        line_1 = b[i][0] - d[0]
        line_2 = b[i][1] - d[1]
        if line_1**2 + line_2**2 <=400:
            state = False

def unpause():
    global state
    state = True
    create()
    d[1]=400



def process():
    if state:
        draw()
        move()
        collide()
    turtle.ontimer(process, 100)

turtle.onkeypress(jump,"space")
turtle.onkeypress(unpause,"q")
turtle.listen()
create()
process()
turtle.done()

贪吃蛇

import turtle
import random
z=turtle.Pen()
turtle.tracer(0)
direct = "right"
food=[0,0]
a=[[0,0],[0,-20],[0,-40]]
def draw():
    z.clear()
    for i in range(len(a)):
        z.up()
        z.goto(a[i])
        z.down()
        z.dot(20,"red")
    z.up()
    z.goto(food)
    z.down()
    z.dot(20,"green")
def move():
    temp = a[0].copy()
    if direct == "up":
        temp[1]+=20
    elif direct == "left":
        temp[0] -= 20
    elif direct == "right":
        temp[0]+=20
    else:
        temp[1] -=20

    # 边缘判断
    if temp[0]>=400:
        temp[0]=-400
    elif temp[0]<-400:
        temp[0]=400
    elif temp[1]>=400:
        temp[1]=-400
    elif temp[1]<-400:
        temp[1]=400

    a.insert(0,temp)
    a.pop()

def collide():
    global food
    if (a[0][0]-food[0])**2+(a[0][1]-food[1])**2<=400:
        food = [random.randint(-200,200),random.randint(-300,300)]
        a.append(a[-1])

    # 蛇头碰到蛇身检测
    for i in range(1,len(a)):
        if (a[0][0]-a[i][0])**2+(a[0][1]-a[i][1])**2<390:
            print("错误")




def up():
    global direct
    if direct == "down":
        pass
    else:
        direct = "up"
def down():
    global direct
    if direct == "up":
        pass
    else:
        direct = "down"
def left():
    global direct
    if direct == "right":
        pass
    else:
        direct = "left"
def right():
    global direct
    if direct == "left":
        pass
    else:
        direct = "right"

turtle.onkeypress(up,"Up")
turtle.onkeypress(down,"Down")
turtle.onkeypress(left,"Left")
turtle.onkeypress(right,"Right")
turtle.listen()



def process():
    collide()
    draw()
    move()

    turtle.ontimer(process,500)
process()
turtle.done()



反弹小球

import turtle

screen_width = 500
screen_height = 500
turtle.setup(screen_width,screen_height)
p = turtle.Pen()
board_blue_y = 50
board_red_y = 50
speed = 10
# 小球的坐标
m = [230,123]
m_size = [-1,-1]


turtle.tracer(False)
def draw_board(board_width,board_height,color,pos):
    if color == "blue":
        p.clear()
    p.penup()
    p.goto(pos)
    p.pendown()
    p.seth(0)
    p.fillcolor(color)
    p.begin_fill()
    p.forward(board_width)
    p.right(90)
    p.forward(board_height)
    p.right(90)
    p.forward(board_width)
    p.right(90)
    p.forward(board_height)
    p.end_fill()

#定义函数,绘制小球
def draw_ball():
    p.up()
    p.goto(m)
    p.down()
    p.dot(50,"green")


def move_ball():
    """
    移动小球
    :return:
    """
    global m,m_size
    m[0]+=m_size[0]
    m[1]+=m_size[1]
    if m[1]<=-(screen_height/2-25):
        m_size[1] = -m_size[1]
    if m[1]>=(screen_height/2-25):
        m_size[1] = -m_size[1]

    # 和板子的碰撞
    if m[0] >=-200 and m[0]<=-175 and m[1]<=board_blue_y and m[1]>=board_blue_y-100:
        m_size[0] = 1
        print("blue")

    if m[0] >=175 and m[0]<=200 and m[1]<=board_red_y and m[1]>=board_red_y-100:
        m_size[0] = -1
        print("red")



def blue_fun():
    global board_blue_y
    board_blue_y += speed
def blue_down():
    global board_blue_y
    board_blue_y-=speed
def red_fun():
    global board_red_y
    board_red_y+=speed
def red_down():
    global board_red_y
    board_red_y-=speed



turtle.onkeypress(blue_fun,"w")
turtle.onkeypress(blue_down,"s")
turtle.onkeypress(red_fun,"Up")
turtle.onkeypress(red_down,"Down")

turtle.listen()



def process():
    draw_board(50,100,"blue",(-250,board_blue_y))
    draw_board(50,100,"red",(250-50,board_red_y))
    # 调用绘制小球的函数
    draw_ball()
    move_ball()

    turtle.ontimer(process,10)


process()
turtle.done()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值