-
Notifications
You must be signed in to change notification settings - Fork 39
/
1559.poti
26 lines (24 loc) · 1.02 KB
/
1559.poti
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mov(dir: Texto, b: Boolean) = se b então dir senão "" fim
n = leia_inteiro
para i de 1 até n faça
linhas = para j de 1 até 4 gere leia_inteiros(" ") fim
var up, down, left, right := falso
para x de 1 até 4 faça
linhax = linhas[x]
colunax = para j de 1 até 4 gere linhas[j][x] fim
para a de 1 até 3 faca
xa, xb, ax, bx = linhax[a], linhax[a+1], colunax[a], colunax[a+1]
xa0, xb0, xab, abx, ax0, bx0 = xa == 0, xb == 0, xa == xb, ax == bx, ax == 0, bx == 0
left := left ou (não xb0 e (xa0 ou xab))
right := right ou (não xa0 e (xb0 ou xab))
up := up ou (não bx0 e (ax0 ou abx))
down := down ou (não ax0 e (bx0 ou abx))
fim
fim
jogadas = mov(" DOWN", down) + mov(" LEFT", left) + mov(" RIGHT", right) + mov(" UP", up)
se jogadas == "" ou linhas.injete([0])(_ + _).posição(2048) > 0 então
escreva "NONE"
senão
escreva jogadas.cauda
fim
fim