[bcn-pm] Reunió aquest dijous.
mimosinnet
mimosinnet a gmail.com
dis jun 18 13:57:01 PDT 2016
El Thursday, 09 de June del 2016 a les 09:22, Jose Luis Perez Diez va
escriure:
>He pujat la meva solució amb un historials de commits (mancarien test
>per les funcions auxiliars ja que els volia fer amb boards de 2,2 que o
>son solucions estàtiques o només duren un cicle; 4,4 blinkers; 5,5
>spacehips ...
>
>https://github.com/barcelonapm/Game_Life_Dojo/tree/jluis_idea
M'he passat una estona mirant el codi i m'ha agradat molt la solució
(treballar amb una línia de cèl·lules i fer la taula a partir de de les
dimensions de la taula). Al provar-ho surt:
perl6 life_game.pl
4,5,0000000*00000*00***0
(4,5),
00000
00*00
000*0
0***0
(4,5),
.*.*.
.....
.*.*.
..**.
(4,5),
...*.
.....
...*.
.*.**
(4,5),
..***
.....
..***
...**
(4,5),
..*.*
.....
..*.*
*....
No sembla que es compleix aquesta regla:
1. Any live cell with fewer than two live neighbours dies, as if caused by underpopulation.
I resseguint el codi, m'he perdut en aquests càlculs:
---
sub neighbours(Int $row,Int $col,Int $rows,Int $cols) {
(
(($row - 2) % $rows) * $cols + ($col -2) % $cols,
(($row - 2) % $rows) * $cols + ($col -1) % $cols,
(($row - 2) % $rows) * $cols + $col % $cols,
(($row - 1) % $rows) * $cols + ($col -2) % $cols,
(($row - 1) % $rows) * $cols + $col % $cols,
($row % $rows) * $cols + ($col -2) % $cols,
($row % $rows) * $cols + ($col -1) % $cols,
($row % $rows) * $cols + $col % $cols)
}
---
Si hi poso els valors, per la casella 1,1, la funció neighbours té els
següents paràmetres: (1,1,4,5)
Curiosament,
$ perl -e 'print ( (1 - 2) % 4) * 5 + (1 -2) % 5'
3
$ perl6 -e 'say ( (1 - 2) % 4) * 5 + (1 -2) % 5'
19
bc 1.06.95
( (1 - 2) % 4) * 5 + (1 -2) % 5
-6
ಠ_ಠ ಠ_ಠ ಠ_ಠ ಠ_ಠ ಠ_ಠ :O
En tot cas, el concepte està clar i mostra la facilitat d'escriptura i
de lectura de perl6.
Moltes gràcies per fer el codi i compartir-lo! M'ha servit per aprendre
forces coses de perl6.
( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°)
Més informació sobre la llista de correu Barcelona-pm