zoukankan      html  css  js  c++  java
  • 生命游戏/Game of Life的Java实现

    首先简单介绍一下《生命游戏》

      生命游戏其实是一个零玩家游戏。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。具体如下图:

    每个格子的生死遵循下面的原则:

      1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变) 。

      2. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;

      3. 在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变设定图像中每个像素的初始状态后依据上述的游戏规则演绎生命的变化,由于初始状态和迭代次数不同,将会得到令人叹服的优美图案)。

    图案:

    有三类图案:

    第一类这种图案是固定不变的:

    第二类:是按规律变化的:

    第三类:是不断变化和移动的,但是有一定的周期性,最著名的就是  滑翔机:

    Java实现代码:

     1 package com.cisco.gendwang;
     2 
     3 
     4 import java.awt.event.ActionEvent;
     5 import java.awt.event.ActionListener;
     6 
     7 
     8 import javax.swing.JFrame;
     9 import javax.swing.JMenu;
    10 import javax.swing.JMenuBar;
    11 import javax.swing.JMenuItem;
    12 
    13 
    14 public class LifeGame extends JFrame
    15 {
    16     private final World world;
    17     
    18     public LifeGame(int rows, int columns)
    19     {
    20         world = new World(rows, columns);
    21         new Thread(world).start();
    22         add(world);
    23     }
    24     
    25     public static void main(String[] args) 
    26     {
    27         LifeGame frame = new LifeGame(40, 50);
    28         
    29         JMenuBar menu = new JMenuBar();
    30         frame.setJMenuBar(menu);
    31         
    32         JMenu options = new JMenu("Options");
    33         menu.add(options);
    34         
    35         JMenuItem arrow = options.add("Arrow");
    36         arrow.addActionListener(frame.new ArrowActionListener());
    37         
    38         JMenuItem square = options.add("Square");
    39         square.addActionListener(frame.new SquareActionListener());        
    40         
    41         JMenu help = new JMenu("Help");        
    42         menu.add(help);
    43         
    44         frame.setLocationRelativeTo(null);
    45         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    46         frame.setSize(1007, 859);
    47         frame.setTitle("Game of Life");
    48         frame.setVisible(true);
    49         frame.setResizable(false);
    50     }    
    51     
    52     class ArrowActionListener implements ActionListener
    53     {
    54         public void actionPerformed(ActionEvent e) 
    55         {
    56             world.setArrow();
    57         }
    58     }
    59     
    60     class SquareActionListener implements ActionListener
    61     {
    62         public void actionPerformed(ActionEvent e) 
    63         {
    64             world.setSquare();
    65         }
    66     }    
    67 }
      1 package com.cisco.gendwang;
      2 
      3 import java.awt.Graphics;
      4 
      5 import javax.swing.JPanel;
      6 
      7 public class World extends JPanel implements Runnable
      8 {
      9     private final int rows;
     10     private final int columns;
     11     private final CellStatus[][] generation1;
     12     private final CellStatus[][] generation2;
     13     private CellStatus[][] currentGeneration;
     14     private CellStatus[][] nextGeneration;
     15     private volatile boolean isChanging = false; 
     16     
     17     public World(int rows, int columns)
     18     {
     19         this.rows = rows;
     20         this.columns = columns;
     21         generation1 = new CellStatus[rows][columns];
     22         for(int i = 0; i < rows; i++)
     23         {
     24             for(int j = 0; j < columns; j++)
     25             {
     26                 generation1[i][j] = CellStatus.Dead;
     27             }
     28         }
     29         
     30         generation2 = new CellStatus[rows][columns];
     31         for(int i = 0; i < rows; i++)
     32         {
     33             for(int j = 0; j < columns; j++)
     34             {
     35                 generation2[i][j] = CellStatus.Dead;
     36             }
     37         }
     38         
     39         currentGeneration = generation1;
     40         nextGeneration = generation2;
     41     }
     42     
     43     @Override
     44     public void run()
     45     {
     46         while(true)
     47         {
     48             synchronized(this)
     49             {
     50                 while(isChanging)
     51                 {
     52                     try 
     53                     {
     54                         this.wait();
     55                     } catch (InterruptedException e) 
     56                     {
     57                         e.printStackTrace();
     58                     }
     59                 }
     60                 
     61                 repaint();
     62                 sleep(1);
     63                 
     64                 for(int i = 0; i < rows; i++)
     65                 {
     66                     for(int j = 0; j < columns; j++)
     67                     {
     68                         evolve(i, j);
     69                     }
     70                 }
     71             
     72                 CellStatus[][] temp = null;
     73                 temp = currentGeneration;
     74                 currentGeneration = nextGeneration;
     75                 nextGeneration = temp;
     76                 
     77                 for(int i = 0; i < rows; i++)
     78                 {
     79                     for(int j = 0; j < columns; j++)
     80                     {
     81                         nextGeneration[i][j] = CellStatus.Dead;
     82                     }
     83                 }
     84             }
     85         }
     86     }
     87     
     88     @Override
     89     public void paintComponent(Graphics g) 
     90     {
     91         super.paintComponent(g);
     92         
     93         for (int i = 0; i < rows; i++) 
     94         {
     95             for (int j = 0; j < columns; j++) 
     96             {
     97                 if(currentGeneration[i][j] == CellStatus.Active)
     98                 {
     99                     g.fillRect(j * 20, i * 20, 20, 20);
    100                 }
    101                 else
    102                 {
    103                     g.drawRect(j * 20, i * 20, 20, 20);                    
    104                 }
    105             }
    106         }
    107     }    
    108     
    109     public void setArrow()
    110     {
    111         setShape(arrow);
    112     }
    113     
    114     public void setSquare()
    115     {
    116         setShape(square);
    117     }    
    118     
    119     private void setShape(int[][] shape)
    120     {
    121         isChanging = true;
    122         
    123         int arrowsRows = shape.length;
    124         int arrowsColumns = shape[0].length;
    125         
    126         int minimumRows = (arrowsRows < rows) ? arrowsRows: rows;
    127         int minimumColumns = (arrowsColumns < columns) ? arrowsColumns : columns;
    128         
    129         synchronized(this)
    130         {
    131             for(int i = 0; i < rows; i++)
    132             {
    133                 for(int j = 0; j < columns; j++)
    134                 {
    135                     currentGeneration[i][j] = CellStatus.Dead;
    136                 }
    137             }
    138             
    139             for(int i = 0; i < minimumRows; i++)
    140             {
    141                 for(int j = 0; j < minimumColumns; j++)
    142                 {
    143                     if(shape[i][j] == 1)
    144                     {
    145                         currentGeneration[i][j] = CellStatus.Active;
    146                     }
    147                 }
    148             }
    149             
    150             isChanging = false;
    151             this.notifyAll();
    152         }        
    153     }
    154     
    155     private void evolve(int x, int y)
    156     {
    157         int activeSurroundingCell = 0;
    158         
    159         if(isValidCell(x - 1, y - 1) && (currentGeneration[x - 1][y - 1] == CellStatus.Active))
    160         {
    161             activeSurroundingCell++;
    162         }
    163 
    164         if(isValidCell(x, y - 1) && (currentGeneration[x][y - 1] == CellStatus.Active))
    165         {
    166             activeSurroundingCell++;
    167         }    
    168         
    169         if(isValidCell(x + 1, y - 1) && (currentGeneration[x + 1][y - 1] == CellStatus.Active))
    170         {
    171             activeSurroundingCell++;
    172         }
    173 
    174         if(isValidCell(x + 1, y) && (currentGeneration[x + 1][y] == CellStatus.Active))
    175         {
    176             activeSurroundingCell++;
    177         }
    178         
    179         if(isValidCell(x + 1, y + 1) && (currentGeneration[x + 1][y + 1] == CellStatus.Active))
    180         {
    181             activeSurroundingCell++;
    182         }
    183 
    184         if(isValidCell(x, y + 1) && (currentGeneration[x][y + 1] == CellStatus.Active))
    185         {
    186             activeSurroundingCell++;
    187         }
    188         
    189         if(isValidCell(x - 1, y + 1) && (currentGeneration[x - 1][y + 1] == CellStatus.Active))
    190         {
    191             activeSurroundingCell++;
    192         }
    193 
    194         if(isValidCell(x - 1, y) && (currentGeneration[x - 1][y] == CellStatus.Active))
    195         {
    196             activeSurroundingCell++;
    197         }    
    198         
    199         if(activeSurroundingCell == 3)
    200         {
    201             nextGeneration[x][y] = CellStatus.Active;
    202         }
    203         else if(activeSurroundingCell == 2)
    204         {
    205             nextGeneration[x][y] = currentGeneration[x][y];
    206         }
    207         else
    208         {
    209             nextGeneration[x][y] = CellStatus.Dead;
    210         }
    211     }
    212     
    213     private boolean isValidCell(int x, int y)
    214     {
    215         if((x >= 0) && (x < rows) && (y >= 0) && (y < columns))
    216         {
    217             return true;
    218         }
    219         else
    220         {
    221             return false;
    222         }
    223     }
    224     
    225     private void sleep(int x)
    226     {
    227         try 
    228         {
    229             Thread.sleep(1000 * x);
    230         } catch (InterruptedException e) 
    231         {
    232             e.printStackTrace();
    233         }
    234     }
    235     
    236     static enum CellStatus
    237     {
    238         Active,
    239         Dead;
    240     }
    241     
    242     private static final int[][] arrow = {
    243         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    244         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    245         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    246         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    247         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    248         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    249         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    250         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    251         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    252         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    253         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    254         {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    255         {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    256         {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    257         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    258         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    259         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    260         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    261         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    262         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},        
    263         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    264         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    265         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    266         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    267         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    268         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    269         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    270         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    271         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    272         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},        
    273         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    274         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    275         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    276         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    277         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    278         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    279         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    280         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    281         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    282         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}        
    283     };
    284     
    285     private static final int[][] square = {
    286         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    287         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    288         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    289         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    290         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    291         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    292         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    293         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    294         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},        
    295         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    296         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    297         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    298         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    299         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    300         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    301         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    302         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    303         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    304         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    305         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    306         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    307         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    308         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    309         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    310         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    311         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    312         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    313         {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    314         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},        
    315         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    316         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    317         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    318         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    319         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    320         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    321         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    322         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    323         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
    324         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},        
    325         {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}        
    326     };
    327 }
    View Code

    ------------------------------------------ 更新2017年06月05日16:54:52 ------------------------------------------

    项目地址:https://github.com/zpfbuaa/Game-Of-Life

    项目代码:http://files.cnblogs.com/files/zpfbuaa/GameOfLife.rar

  • 相关阅读:
    条件概率-独立事件-互斥事件-对立事件
    数学
    可视化:svg相关基础
    移动端调用摄像头(相机)相册
    移动端的事件点透及原因
    ios滑动流畅(丝般顺滑)滚动
    动画框架基础部分
    css美化select标签,兼容ie10 ie10+,chrome。但不支持ie9 ie9-
    ie11 调试工具不能使用
    css使用
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/5071684.html
Copyright © 2011-2022 走看看