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