Creating the 2048 board
Up until now, we were relying on existing Kivy widgets, customizing them as needed to fit our specific use case. For this application, we're going to build our own unique widgets: Board
(the playing field) and Tile
.
Let's begin with the simple stuff and create the background for the playing field. The most unimaginative way to do so would be just using a static image; this approach has many problems, for example, it does not support the multitude of possible screen sizes properly (remember that we're talking about both desktop and mobile at the same time, so the screen size can vary wildly).
Instead, we will create the Board
widget that renders the playing field graphics onto its canvas. This way, the board's positioning and size will be given declaratively in a Kivy language file, same as with other widgets we've used before (such as text labels and buttons).
Probably the easiest thing to start with is indeed setting the position and size of a board. To do this efficiently...