grid_sim/world/builder/
designs.rs

1#[derive(Clone)]
2pub enum Design {
3    //Still lifes
4    Block,
5    Beehive,
6    Loaf,
7    Boat,
8    Tub,
9    //Oscillators
10    Blinker,
11    Toad,
12    Beacon,
13    Pulsar,
14    Eureka,
15    //Spaceships
16    Glider,
17    LWSS,
18}
19impl Design {
20    pub fn get_data(&self) -> Vec<(u64, u64)> {
21        match *self {
22            Design::Block => {
23                vec![
24                ( 1, 1), ( 2, 1),
25                ( 1, 2), ( 2, 2)
26                ]
27            },
28            Design::Beehive => {
29                vec![
30                         ( 2, 1), (3, 1),        
31                ( 1, 2),                  (4, 2),
32                         ( 2, 3), (3, 3)
33                ]
34            },
35            Design::Loaf => {
36                vec![
37                         ( 2, 1), (3, 1),         
38                ( 1, 2),                  (4, 2), 
39                         ( 2, 3),         (4, 3), 
40                                  (3, 4)
41                ]
42            },
43            Design::Boat => {
44                vec![
45                ( 1, 1), ( 2, 1),        
46                ( 1, 2),          (3, 2),
47                         ( 2, 3) 
48                ]
49            },
50            Design::Tub => {
51                vec![
52                         ( 2, 1),
53                ( 1, 2),          (3, 2),
54                ( 1, 3), ( 2, 3)
55                ]
56            },
57            Design::Blinker => {
58                vec![
59                ( 1, 1), ( 2, 1), (3, 1)
60                ]
61            },
62            Design::Toad => {
63                vec![
64                         ( 2, 1), (3, 1), (4, 1),
65                ( 1, 2), ( 2, 2), (3, 2),
66                ]
67            },
68            Design::Beacon => {
69                vec![
70                ( 1, 1), ( 2, 1),
71                ( 1, 2),          
72                                          (4, 3),
73                                  (3, 4), (4, 4),
74                ]
75            },
76            Design::LWSS => {
77                vec![
78                ( 1, 1),                  (4, 1),
79                                                  (5, 2),
80                ( 1, 3),                          (5, 3),
81                         ( 2, 4), (3, 4), (4, 4), (5, 4),
82                ]
83            },
84            Design::Glider => vec![(2, 1), (1, 3), (2, 3), (3, 3), (3, 2)],
85            Design::Pulsar => {
86                vec![
87        (4, 2), (5, 2), ( 6, 2),                 (10, 2), (11, 2), (12, 2),                         
88                                                                           
89( 2, 4),                         ( 7, 4),(9, 4),                           (14, 4), 
90( 2, 5),                         ( 7, 5),(9, 5),                           (14, 5), 
91( 2, 6),                         ( 7, 6),(9, 6),                           (14, 6), 
92        (4, 7), (5, 7), ( 6, 7),                 (10, 7), (11, 7), (12, 7),
93                                                                                    
94        (4, 9), (5, 9), ( 6, 9),                 (10, 9), (11, 9), (12, 9),
95( 2,10),                         ( 7,10),(9,10),                           (14,10), 
96( 2,11),                         ( 7,11),(9,11),                           (14,11), 
97( 2,12),                         ( 7,12),(9,12),                           (14,12), 
98                                                                                    
99        (4,14), (5,14), ( 6,14),                 (10,14), (11,14), (12,14),
100                ]
101            },
102            Design::Eureka => {
103                vec![
104         ( 2, 3),                                         (17, 3),         
105( 1, 4),          (3, 4),( 7, 4), (8, 4), (9, 4),(16, 4),          (18, 4),
106         ( 2, 5),        ( 7, 5),         (9, 5),         (17, 5),         
107                         ( 7, 6), (8, 6), (9, 6),                          
108                         ( 7,10), (8,10), (9,10),                          
109         ( 2,11),        ( 7,11),         (9,11),         (17,11),         
110( 1,12),          (3,12),( 7,12), (8,12), (9,12),(16,12),          (18,12),
111         ( 2,13),                                         (17,13),         
112                ]
113            },
114        }
115    }
116}