More polished version below. Better collision, ai etc. And squashed into 12 lines. I think some of these commands may only be dbpro compatible, I'm not sure.
hide mouse : box 0,0,10,30 : get image 1,0,0,8,8 : get image 2,0,0,10,30 : sync rate 60 : sync on : sprite 1,0,0,1 : bat1_y=220 : bat2_y=220 : serve=1 : gosub serve
do : box 0,15,640,25 : box 0,470,640,480 : text 0,0,"Player score: "+str$(score1) : text 200,0,"Cpu score: "+str$(score2)
if keystate(30)=1 : dec bat1_y,6 : endif : if keystate(44)=1 : inc bat1_y,6 : endif
if sprite angle(1)<180 and sprite x(1)>100 and abs(sprite y(1)-bat2_y)>12 and aimove=0 : if sprite y(1)>bat2_y : aimovedir=0 : endif : if sprite y(1)<bat2_y : aimovedir=1 : endif : aimove=rnd(8)+2 : endif
if aimove>0 : if aimovedir=0 : inc bat2_Y,6 : endif : if aimovedir=1 : dec bat2_Y,6 : endif : dec aimove : endif
if bat1_y<25 : bat1_y=25 : endif : if bat1_y>440 : bat1_y=440 : endif : if bat2_y<25 : bat2_y=25 : endif : if bat2_y>440 : bat2_y=440 : endif
move sprite 1,7 : sprite 2,10,bat1_y,2 : sprite 3,620,bat2_y,2
if (sprite collision(1,2)=1 and sprite angle(1)=>180) or (sprite collision(1,3)=1 and sprite angle(1)<=180) then rotate sprite 1,wrapvalue(sprite angle(1)+rnd(30)+120)
if sprite y(1)>462 : rotate sprite 1,wrapvalue(180-sprite angle(1)) : endif : if sprite y(1)<25 : rotate sprite 1,wrapvalue(180-sprite angle(1)) : endif
if sprite x(1)>640 : serve=1 : gosub serve : inc score1 : endif : if sprite x(1)<0 : serve=2 : gosub serve : inc score2 : endif : sync : loop
serve:
if serve=1 : x=25 : ang=rnd(90)+45 : endif : if serve=2 : x=615 : ang=rnd(90)+225 : endif : sprite 1,x,rnd(380)+50,1 : rotate sprite 1,ang : return