Problem involving an infinite lattice grid I'm stuck on this problem for Intro to Point-Set Topology.... I'm given that a submarine starts somewhere in $\mathbb{R}^2$ and moves in a straight line at constant velocity, in such a way that at every hour it is at a point whose coordinates are integers. At every hour, I am able to drop one bomb at one point in $\mathbb{R}^2$ whose coordinates are integers. My task is to show that I can drop bombs in such a way that I will eventually hit the submarine.
My work so far:
I know that $\mathbb{Z} \times \mathbb{Z}$ is countable, and since the set of integer-lattice points intersected by the submarine is a subset of $\mathbb{Z}\times \mathbb{Z}$, this set is also countable.
I also know I can parametrize the path of the submarine as follows, where $k_1, k_2, m_1, m_2 \in \mathbb{Z}$ and $m_1, m_2 \neq 0$.
\begin{align*}
x & = k_1 + m_1 t \\
y & = k_2 + m_2 t
\end{align*}
where $t$ is the time in hours.
I also can come up with ways to count all of $\mathbb{Z}\times \mathbb{Z}$, and hence the path of the submarine. For example, I could start at $(0,0)$, then go to $(0,1)$, then $(-1,1)$, then $(-1,0)$, then $(-1, -1)$, then $(0,-1)$, and continue in a sort of square spiral. I know that this spiral will eventually hit every point on the path of the submarine as time goes to infinity. But...how do I guarantee that I actually hit the submarine itself???

Instead of trying to hit every point, focus of hitting every possible combination of starting points and velocities of the submarine. There are only countably many $(k_1,k_2,m_1,m_2)\in\mathbb Z^4$ to check, so you can go through them all in sequence. For each combination, drop a bomb at the point the sub will have reached by now if those parameters are right.
