猫捉老鼠游戏(Python)

用键盘方向键来控制老鼠,使其在猫的正前方

import turtle
import time

boxsize=200
caught=False
score=0
#定义响应键盘消息的函数
def up():
    mouse.forward(10)
    checkbound()

def left():
    mouse.left(45)

def right():
    mouse.right(45)

def back():
    mouse.backward(10)
    checkbound()

def quitTurtles():
    window.bye()
#检测边界
def checkbound():
    global boxsize  #使用外部变量
    if mouse.xcor() > boxsize:
        mouse.goto(boxsize,mouse.ycor())
    if mouse.xcor() < -boxsize:
        mouse.goto(-boxsize,mouse.ycor())
    if mouse.ycor() > boxsize:
        mouse.goto(mouse.xcor(),boxsize)
    if mouse.ycor() > -boxsize:
        mouse.goto(mouse.xcor(),-boxsize)
#设置屏幕
window=turtle.Screen()
mouse=turtle.Turtle()
cat=turtle.Turtle()
mouse.penup()
mouse.penup()
mouse.goto(100,100)

#添加对键盘消息的监听
window.onkeypress(up,"Up")
window.onkeypress(left,"Left")
window.onkeypress(right,"Right")
window.onkeypress(back,"Down")
window.onkeypress(quitTurtles,"Escape")
#定义难度系数
difficulty=window.numinput("Difficulty","Enter a difficulty from easy (1),for hard (5)",minval=1,maxval=5)

window.listen()
#主循环
while not caught:
    cat.setheading(cat.towards(mouse))
    cat.forward(8+difficulty)
    score=score+1
    if cat.distance(mouse) < 5:  #猫和老鼠的距离小于5个像素,表示老鼠被毛抓住了
        caught=True
    time.sleep(0.2-(0.01*difficulty))
window.textinput("Game Over","Well Done.You scored: "+str(score*difficulty))
window.bye()



运行效果:


  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值