# pong.py

Created by arthurjacquin

Created on May 01, 2022

1.72 KB

```# Pong - May 2022
# Arthur Jacquin (arthur@jacquin.xyz)
# https://github.com/arthur-jacquin/numworks-games

# Modules
from ion import keydown as kd
from kandinsky import draw_string, fill_rect
from time import sleep

# Colors
bg = (230,)*3
c1 = (238, 39, 51)
c2 = (78, 183, 72)
bl = (0,)*3

def init():
global x, y, dx, dy, y1, dy1, s1, y2, dy2, s2
x, y, dx, dy = 16, 106, 9, 0
y1, dy1 = 73, 0
y2, dy2 = 73, 0
fill_rect(0, 0, 320, 222, bg)
draw_string(str(s1), 135, 30, c1, bg)
draw_string(str(s2), 175, 30, c2, bg)
fill_rect(0, y1, 7, 75, c1)
fill_rect(313, y2, 7, 75, c2)
if max(s1, s2) < 5:
sleep(1)
else:
while not(kd(4)): pass
s1, s2 = 0, 0
draw_string(" "*5, 135, 30, bg, bg)

def bar(x, y, dy, up, dw, c):
dy = max(-21, min(dy + 4*(kd(dw)-kd(up)), 21))
ny = max(0, min(y + dy, 147))
if ny > y:
fill_rect(x, y, 7, ny-y, bg)
fill_rect(x, y+75, 7, ny-y, c)
else:
fill_rect(x, ny, 7, y-ny, c)
fill_rect(x, ny+75, 7, y-ny, bg)
return ny, dy*(ny != y)

def ball():
global x, y, dx, dy, s1, s2
fill_rect(x, y, 9, 9, bg)
if x == 7:
if y1-9 < y < y1+75+9:
dx = 9
dy = int((dy + dy1)/2)
else:
s2 += 1
init()
elif x == 304:
if y2-9 < y < y2+75+9:
dx = -9
dy = int((dy + dy2)/2)
else:
s1 += 1
init()
x += dx
if 0 <= y+dy <= 213:
y += dy
else:
y = -dy-y+426*(dy>0)
dy *= -1
fill_rect(x, y, 9, 9, bl)

s1, s2 = 0, 0
init()
while True:
y1, dy1 = bar(0, y1, dy1, 30, 36, c1)
y2, dy2 = bar(313, y2, dy2, 34, 40, c2)
ball()
sleep(0.05)```