Anem a fer un programa per jugar al tres en línia. Abans de res, farem el taulell, que és la part estàtica. Comencem per definir el mosaic que s'emprarà per fer el taulell i les vores. Hem de crear un fitxer amb setze rajoles però, de moment, només ens en calen sis. El fitxer d'imatge tile.bmp és aquest:
Per entendre com el farem servir, el trossejarem en les corresponents rajoles de 16 ⨯ 16 píxels.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Els números que corresponen a cada rajola són:
| Índex | Utilització |
| 0 | Fons de la barra lateral |
| 1 | Cantonada superior esquerra d'una casella |
| 2 | Cantonada superior dreta d'una casella |
| 3 | Cantonada inferior dreta d'una casella |
| 4 | Cantonada inferior esquerra d'una casella |
| 5 | Vora del taulell |
La figura següent mostra com ha de quedar el taulell.

Al lateral del taulell és on s'indicarà a quin jugador li correspon tirar en cada moment.
El programa seria el següent:
import ugame import stage
banc = stage.Bank.from_bmp16("tile0.bmp")
fons = stage.Grid(banc, 10, 8) # 16 * 10 = 160
# 16 * 8 = 128
joc = stage.Stage(ugame.display, 12)
# Funcio que dibuixa el taulell
def dib_taulell():
# Ara tot el fons és negre
# Fem l'espai lateral, on s'indica a qui toca tirar
fons.tile(8, 3, tile=1) # Superior esquerra
fons.tile(8, 4, tile=4) # Superior dreta
fons.tile(9, 3, tile=2) # Inferior esquerra
fons.tile(9, 4, tile=3) # Inferior dreta
# Fem la vora del taulellfor i in range(8): # 8 fileres
for j in range(8): # 8 columnes
fons.tile(0, j, tile=5)
fons.tile(7, j, tile=5)
for i in range(6): # 6 fileres
fons.tile(i+1, 0, tile=5)
fons.tile(i+1, 7, tile=5)
# Anem a fer el taulell
for i in range(6): # 6 fileres
for j in range(6): # 6 columnes
if i%2 == 0: # Si filera és senar
if j%2 == 0: # Si columna és senar
fons.tile(i+1, j+1, tile=1)
else:
fons.tile(i+1, j+1, tile=4)
else:
if j%2 == 0: # Si columna és senar
fons.tile(i+1, j+1, tile=2)
else:
fons.tile(i+1, j+1, tile=3)
# Fi de la funcio
joc.layers = [fons]
dib_taulell()
joc.render_block()
while True:
pass
En aquest cas, el taulell té unes repeticions molt clares i, per tant, podem fer servir bucles i comparacions per definir-lo; però això pot ser més complicat en altres casos. Una forma alternativa és definir una matriu que indiqui quina rajola correspon a cada posició i emprar un parell de bucles per dibuixar-ho, com es fa en el programa següent:
import ugame import stage
banc = stage.Bank.from_bmp16("tile0.bmp")
fons = stage.Grid(banc, 10, 8) # 16 * 10 = 160
# 16 * 8 = 128
joc = stage.Stage(ugame.display, 12)
# Funcio que dibuixa el taulell
def dib_taulell():
tau = [ [5, 5, 5, 5, 5, 5, 5, 5, 0, 0],
[5, 1, 2, 1, 2, 1, 2, 5, 0, 0],
[5, 4, 3, 4, 3, 4, 3, 5, 0, 0],
[5, 1, 2, 1, 2, 1, 2, 5, 1, 2],
[5, 4, 3, 4, 3, 4, 3, 5, 4, 3],
[5, 1, 2, 1, 2, 1, 2, 5, 0, 0],
[5, 4, 3, 4, 3, 4, 3, 5, 0, 0],
[5, 5, 5, 5, 5, 5, 5, 5, 0, 0] ]
for i in range(8): # 8 fileres
for j in range(10): # 10 columnes
fons.tile(j, i, tile=tau[i][j])
# Fi de la funcio
joc.layers = [fons]
dib_taulell()
joc.render_block()
while True:
pass

Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.