A 4*4 square with numbered squares in random order with one tile missing. Just arrange them in the right order using the empty space and you win this game. This game will definitely puzzle your brain for a bit.
# This game is from the official documentation of freegames # https://pypi.org/project/freegames/ # pip install freegames # Tap on Tile to Move # import modules from random import * import turtle as t from freegames import floor, vector # Set window title, color and icon t.title("Tile-15") root = t.Screen()._root root.iconbitmap("logo-ico.ico") t.bgcolor('#990099') tiles = {} neighbors = [ vector(100, 0), vector(-100, 0), vector(0, 100), vector(0, -100), ] # Set window title, color and icon # Load tiles and scramble def load(): count = 1 for y in range(-200, 200, 100): for x in range(-200, 200, 100): mark = vector(x, y) tiles[mark] = count count += 1 tiles[mark] = None for count in range(1000): neighbor = choice(neighbors) spot = mark + neighbor if spot in tiles: number = tiles[spot] tiles[spot] = None tiles[mark] = number mark = spot # Draw white square with black outline and number def square(mark, number): t.up() t.goto(mark.x, mark.y) t.down() t.color('#003325', '#ffb3e6') t.begin_fill() for count in range(4): t.forward(99) t.left(90) t.end_fill() if number is None: return elif number < 10: t.forward(20) t.write(number, font=('Arial', 45, 'normal')) # Swap tile and empty square def tap(x, y): x = floor(x, 100) y = floor(y, 100) mark = vector(x, y) for neighbor in neighbors: spot = mark + neighbor if spot in tiles and tiles[spot] is None: number = tiles[mark] tiles[spot] = number square(spot, number) tiles[mark] = None square(mark, None) # Draw all tiles def draw(): for mark in tiles: square(mark, tiles[mark]) t.update() t.setup(420, 420, 370, 0) t.hideturtle() t.tracer(False) load() draw() t.onscreenclick(tap) t.done()