Consider an idealized billiard table of length $a$ and
width $b$. The table has no pockets; its surface has no friction; and its boundary bounces the balls perfectly. Write an automaton model $\mathcal{A}$ for the position of two balls of equal mass on this table. Use discretized state space for your model. That is, the state for each ball is given by a pair of integers $(x_i,y_i)$ where $0\leq x_i \leq a$, $0\leq y_i\leq b$. And, at each transition, each ball can {\bf move\/} to only one of its $9$ neighboring cells based on the imparted velocity.
Consider an idealized billiard table of length $a$ and
width $b$. The table has no pockets; its surface has no friction; and its boundary bounces the balls perfectly. Write an automaton model $\mathcal{A}$ for the position of two balls of equal mass on this table. Use discretized state space for your model. That is, the state for each ball is given by 4 integers $(x_i,y_i, vx_i, vy_i)$ where $0\leq x_i \leq a$, $0\leq y_i\leq b$ and $vx_i, vy_i \in\{-1,0,1\}$. At each transition, each ball can {\bf move\/} to only one of its $9$ neighboring cells based on $vx_i, vy_i$.
Each ball has some initial velocity (one of $9$ possibilities). A ball {\bf bounces\/} off a wall when its position is at the boundary. Balls {\bf collide\/} whenever $|x_1-x_2|=1$ and $|y_1-y_2|=1$ and their velocity vectors are pointing towards each other. Whenever a bounce occurs, the appropriate velocity changes sign. Whenever a collision occurs, the balls exchange their velocity vectors.