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}