python乒乓球比赛规则_python乒乓球

源代码:

import turtle as t

import random as rd

import simpleaudio as sa

yeah=sa.WaveObject.from_wave_file(‘bounce.wav’)

#创建背景

game = t.Screen()

game.title(‘双人乒乓球’)

game.bgcolor(‘black’)

game.setup(800,600)

#创建1号球拍

racket1 = t.Turtle()

racket1.ht()#隐藏

racket1.up()

racket1.speed()

racket1.color(‘white’)

racket1.shape(‘square’)

racket1.shapesize(5,1)

racket1.goto(-350,0)

racket1.st()#显示

#创建2号球拍

racket2 = t.Turtle()

racket2.ht()#隐藏

racket2.up()

racket2.speed()

racket2.color(‘yellow’)

racket2.shape(‘square’)

racket2.shapesize(5,1)

racket2.goto(350,0)

racket2.st()#显示

#添加乒乓球

table = t.Turtle()

table.ht()

table.up()

table.speed()

table.color(‘white’)

table.shape(‘circle’)

table.st()

table.dx = rd.randint(1,10)

table.dy = rd.randint(1,10)

player_speed = 50

racket1_score=0

racket2_score=0

#显示分数

pen=t.Turtle()

pen.ht()

pen.up()

pen.color(‘white’)

pen.goto(-30,250)

score_text=‘玩家A的分数:{} 玩家B的分数:{}’.format(racket1_score,racket2_score)

pen.write(score_text,align=‘center’,font=(‘Arial’,20))

#显示游戏结束

pen2=t.Turtle()

pen2.ht()

pen2.up()

pen2.color(‘white’)

def racket1_up():

y=racket1.ycor()

y=y+player_speed

acket1.sety(y)

def racket1_down():

y=racket1.ycor()

y=y-player_speed

racket1.sety(y)

def racket2_up():

y=racket2.ycor()

y=y+player_speed

racket2.sety(y)

def racket2_down():

y=racket2.ycor()

y=y-player_speed

racket2.sety(y)

game.listen()

game.onkey(racket1_up,‘w’)

game.onkey(racket1_down,‘s’)

game.onkey(racket2_up,‘Up’)

game.onkey(racket2_down,‘Down’)

#判定是否要退出

running=True

def stop_loop():

global running

running=False

#获得窗口TK对象,并注册关闭事件

root=game.getcanvas().winfo_toplevel()

root.protocol(‘WM_DELETE_WINDOW’,stop_loop)

#游戏主循环

while running:

game.update()

table.setx(table.xcor()+table.dx)

table.sety(table.ycor()+table.dy)

if (table.ycor()>290 or (table.ycor()<-290)):

table.dy*=-1

#球拍接球

y_up=racket2.ycor()+50

y_down=racket2.ycor()-50

if (table.ycor()y_down and table.xcor()>340):

table.dx*=-1

table.setx(339)

yeah.play()

if (table.ycor()racket1.ycor()-50 and table.xcor()<-340):

table.dx*=-1

table.setx(-339)

yeah.play()

#判断球出界

if (table.xcor()>380):

table.goto(0,0)

racket1_score+=1

pen.clear()

score_text='玩家A的分数:{}  玩家B的分数:{}'.format(racket1_score,racket2_score)

pen.write(score_text,align='center',font=('Arial',20))

if(table.xcor()<-380):

table.goto(0,0)

racket2_score+=1

pen.clear()

score_text='玩家A的分数:{}  玩家B的分数:{}'.format(racket1_score,racket2_score)

pen.write(score_text,align='center',font=('Arial',20))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值