Create additions with 4-digit numbers instead of 3-digit numbers

This commit is contained in:
2020-03-21 22:22:15 +01:00
parent 06c48b114d
commit f1de0509a8

22
main.py
View File

@@ -7,19 +7,21 @@ from reportlab.lib.pagesizes import A4
from reportlab.lib.units import mm, cm from reportlab.lib.units import mm, cm
def draw_seyes_grid(canvas, x_offset, y_offset): def draw_seyes_grid(canvas, x_offset, y_offset):
nb_cols = 5
nb_lines = 3
# x, y: pdf coordinates # x, y: pdf coordinates
canvas.setStrokeColor("lightblue") canvas.setStrokeColor("lightblue")
xs = [x*8*mm + x_offset for x in range(0,5)] xs = [x*8*mm + x_offset for x in range(0, nb_cols + 1)]
ys = [x*2*mm + y_offset for x in range(0, 4*3)] ys = [x*2*mm + y_offset for x in range(0, (nb_lines + 1) * 3)]
canvas.grid(xs, ys) canvas.grid(xs, ys)
canvas.setStrokeColor("purple") canvas.setStrokeColor("purple")
xs = [x*8*mm + x_offset for x in range(0,5)] xs = [x*8*mm + x_offset for x in range(0, nb_cols + 1)]
ys = [y*8*mm +y_offset for y in range(0,4)] ys = [y*8*mm +y_offset for y in range(0, nb_lines + 1)]
canvas.grid(xs, ys) canvas.grid(xs, ys)
canvas.setStrokeColor("black") canvas.setStrokeColor("black")
canvas.line(x_offset + 1*mm, y_offset + 6*mm, x_offset + 31*mm, y_offset + 6*mm) canvas.line(x_offset + 1*mm, y_offset + 6*mm, x_offset + ((nb_cols * 8) - 1)*mm, y_offset + 6*mm)
@@ -33,8 +35,8 @@ def draw_char(canvas, x_origin, y_origin, x, y, mychar):
def draw_number(canvas, x_offset, y_offset, num, line): def draw_number(canvas, x_offset, y_offset, num, line):
digits = list(str(num)) digits = list(str(num))
pos = [3, 2, 1] pos = [4, 3, 2, 1]
for (digit, column_nb) in zip(reversed(digits), [3,2,1]): for (digit, column_nb) in zip(reversed(digits), pos):
draw_char(canvas, x_offset, y_offset, column_nb, line, digit) draw_char(canvas, x_offset, y_offset, column_nb, line, digit)
@@ -57,11 +59,11 @@ def main(outfile):
c = canvas.Canvas(outfile, pagesize=A4) c = canvas.Canvas(outfile, pagesize=A4)
c.setFont('Helvetica', 22) c.setFont('Helvetica', 22)
for i in range(5): for i in range(4):
for j in range(7): for j in range(7):
x = 0.8*cm + i*4*cm x = 1*cm + i*5*cm
y = 26*cm - j*4*cm y = 26*cm - j*4*cm
draw_addition(c, x, y, randint(1, 999), randint(1, 999)) draw_addition(c, x, y, randint(1, 9999), randint(1, 9999))
# reportlab: end page + save pdf # reportlab: end page + save pdf
c.showPage() c.showPage()