Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ======= modelo =======
  2.  
  3. angular.module('angulife').factory('AngulifeModel', function(){
  4.     var m = {
  5.         tabela: [
  6.             [0,0,0],
  7.             [0,1,0],
  8.             [0,0,0]
  9.         ];
  10.         tabela: [
  11.             [{vivo:false},{vivo:false},{vivo:false}],
  12.             [{vivo:false},{vivo:true},{vivo:false}],
  13.             [{vivo:false},{vivo:false},{vivo:false}],
  14.         ];
  15.         init: function(L, C){
  16.             //inicializa m.tabela com L x C zeros
  17.         },
  18.         avanca: function(){
  19.             var tabelaclone = copia(m.tabela);
  20.             for(var i=0; i<tabelaclone.length; i++){
  21.                 var linha = tabelaclone[i];
  22.                 for(var j=0; j<linha.length; j++){
  23.                     var celula = linha[j];
  24.                     var estouvivo = celula == 1;
  25.                     var count_vizinhos_vivos = conta_quantos_vizinhos_vivos(i, j, tabelaclone);
  26.                     if(estouvivo){
  27.                         if(count_vizinhos_vivos < 2 || count_vizinhos_vivos > 3){
  28.                             m.tabela[i][j] = 0
  29.                         }
  30.                     } else {
  31.                         if(count_vizinhos_vivos == 3){
  32.                             m.tabela[i][j] = 1
  33.                         }
  34.                     }
  35.                 }
  36.             }
  37.         },
  38.         troca_estado: function(celula){
  39.             // m[i][j] = m[i][j] == 0 ? 1 : 0;
  40.             celula.vivo = !celula.vivo;
  41.         }
  42.     };
  43.  
  44.     function conta_quantos_vizinhos_vivos(i, j, tabela){
  45.         // vizinhos:
  46.         // i-1, j-1
  47.         // i-1, j
  48.         // i-1, j+1
  49.         // i, j-1
  50.                         // i, j NAO
  51.         // i, j+1
  52.         // i+1, j-1
  53.         // i+1, j
  54.         // i+1, j+1
  55.     }
  56.     return m;
  57. });
  58.  
  59. ===== controller =====
  60. //omitido
  61.     //...
  62.     $scope.m = AngulifeModel
  63.     //...
  64.  
  65. ===== template =====
  66.  
  67. <div>....
  68.  
  69.     <table>
  70.         <tr ng-repeat="linha in m.tabela">
  71.             <td ng-repeat="celula in linha" ng-click=m.troca_estado(celula)>
  72. <!--                <img src="preto.jpg" ng-show="celula == 0">
  73.                 <img src="branco.jpg" ng-show="celula == 1"> -->
  74.                 <img src="preto.jpg" ng-show="!celula.vivo">
  75.                 <img src="branco.jpg" ng-show="celula.vivo">
  76.             </td>
  77.         </tr>
  78.     </table>
  79. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement