Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ======= modelo =======
- angular.module('angulife').factory('AngulifeModel', function(){
- var m = {
- tabela: [
- [0,0,0],
- [0,1,0],
- [0,0,0]
- ];
- tabela: [
- [{vivo:false},{vivo:false},{vivo:false}],
- [{vivo:false},{vivo:true},{vivo:false}],
- [{vivo:false},{vivo:false},{vivo:false}],
- ];
- init: function(L, C){
- //inicializa m.tabela com L x C zeros
- },
- avanca: function(){
- var tabelaclone = copia(m.tabela);
- for(var i=0; i<tabelaclone.length; i++){
- var linha = tabelaclone[i];
- for(var j=0; j<linha.length; j++){
- var celula = linha[j];
- var estouvivo = celula == 1;
- var count_vizinhos_vivos = conta_quantos_vizinhos_vivos(i, j, tabelaclone);
- if(estouvivo){
- if(count_vizinhos_vivos < 2 || count_vizinhos_vivos > 3){
- m.tabela[i][j] = 0
- }
- } else {
- if(count_vizinhos_vivos == 3){
- m.tabela[i][j] = 1
- }
- }
- }
- }
- },
- troca_estado: function(celula){
- // m[i][j] = m[i][j] == 0 ? 1 : 0;
- celula.vivo = !celula.vivo;
- }
- };
- function conta_quantos_vizinhos_vivos(i, j, tabela){
- // vizinhos:
- // i-1, j-1
- // i-1, j
- // i-1, j+1
- // i, j-1
- // i, j NAO
- // i, j+1
- // i+1, j-1
- // i+1, j
- // i+1, j+1
- }
- return m;
- });
- ===== controller =====
- //omitido
- //...
- $scope.m = AngulifeModel
- //...
- ===== template =====
- <div>....
- <table>
- <tr ng-repeat="linha in m.tabela">
- <td ng-repeat="celula in linha" ng-click=m.troca_estado(celula)>
- <!-- <img src="preto.jpg" ng-show="celula == 0">
- <img src="branco.jpg" ng-show="celula == 1"> -->
- <img src="preto.jpg" ng-show="!celula.vivo">
- <img src="branco.jpg" ng-show="celula.vivo">
- </td>
- </tr>
- </table>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement