-
Notifications
You must be signed in to change notification settings - Fork 0
/
solver.py
38 lines (27 loc) · 917 Bytes
/
solver.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from kiwisolver import (Variable as Var,
Solver)
class App:
def __init__(self):
self.columns = 50
self.rows = 50
class ViewSolver:
def __init__(self, view, app):
self.app = app
self.view = view
self.left_side = Var("left_side")
self.right_side = Var("right_side")
self.top = Var("top")
self.bottom = Var("bottom")
self._solver = Solver()
self.constraints = [
self.left_side == 0,
self.top == 0,
self.right_side == self.app.columns,
self.bottom == self.app.rows,
]
for c in self.constraints:
self._solver.addConstraint(c)
self._solver.updateVariables()
def repr(self):
return (f"[[{self.left_side.value()},{self.top.value()}],"
f"[{self.right_side.value()},{self.bottom.value()}]]")