A condensed version for SmallBASIC:
'Infinite Pong the Movie.bas for SmallBASIC v 0.12.13 B+ 2018-09-19
' have window opened enough for 105 char cells across and 31+ down
p1y = 1 : p2y = 30 'paddle y
bx = 50 : by = 20 : bdx = 2 : bdy = 1 'ball x, y, dx, dy
while 1
Cls
p1x = bx - 5 : Locate p1y, p1x : Print "1111111111"; ' draw paddle 1
p2x = bx - 5 : Locate p2y, p2x : Print "2222222222"; ' draw paddle 2
If bx + bdx < 7 Then bdx = bdx * -1 + Int(Rnd * 3) - 1
if bx + bdx > 100 Then bdx = bdx * -1 + Int(Rnd * 3) - 1
if by + bdy < 2 Then bdy = bdy * -1 : bdx = bdx + Int(Rnd * 3) - 1
if by + bdy > 29 Then bdy = bdy * -1 : bdx = bdx + Int(Rnd * 3) - 1
bx = bx + bdx : by = by + bdy
Locate by, bx : Print "O";
Delay 60
wend
And QB64 version:
_TITLE "Infinite Pong the Movie.bas for QB64 B+ 2018-09-19"
p1y = 1: p2y = 25 'paddle y
bx = 30: by = 10: bdx = 2: bdy = 1 'ball x, y, dx, dy
WHILE 1
CLS
p1x = bx - 5: _PRINTSTRING (p1x, p1y), "1111111111" ' draw paddle 1
p2x = bx - 5: _PRINTSTRING (p2x, p2y), "2222222222" ' draw paddle 2
IF bx + bdx < 6 THEN bdx = bdx * -1 + INT(RND * 3) - 1
IF bx + bdx > 74 THEN bdx = bdx * -1 + INT(RND * 3) - 1
IF by + bdy < 2 THEN bdy = bdy * -1: bdx = bdx + INT(RND * 3) - 1
IF by + bdy > 24 THEN bdy = bdy * -1: bdx = bdx + INT(RND * 3) - 1
bx = bx + bdx: by = by + bdy
_PRINTSTRING (bx, by), "O"
_LIMIT 10
WEND