Compare commits
2 Commits
f3a043eaee
...
fdd22cd531
Author | SHA1 | Date | |
---|---|---|---|
|
fdd22cd531 | ||
|
3e2381f42a |
73
src/main.rs
73
src/main.rs
@ -87,12 +87,12 @@ struct Cube {
|
|||||||
impl Cube {
|
impl Cube {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
u: Face::new(Color::W),
|
u: Face::new(Color::Y),
|
||||||
d: Face::new(Color::Y),
|
d: Face::new(Color::W),
|
||||||
l: Face::new(Color::R),
|
l: Face::new(Color::R),
|
||||||
r: Face::new(Color::O),
|
r: Face::new(Color::O),
|
||||||
b: Face::new(Color::B),
|
|
||||||
f: Face::new(Color::G),
|
f: Face::new(Color::G),
|
||||||
|
b: Face::new(Color::B),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// U
|
// U
|
||||||
@ -107,6 +107,33 @@ impl Cube {
|
|||||||
self.b.apply_t(self.l.tr, self.l.tm, self.l.tl);
|
self.b.apply_t(self.l.tr, self.l.tm, self.l.tl);
|
||||||
self.l.apply_t(f_tr, f_tm, b_tl);
|
self.l.apply_t(f_tr, f_tm, b_tl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn d(&mut self) {
|
||||||
|
self.d.rotate();
|
||||||
|
let (f_br, f_bm, f_bl) = (self.f.br, self.f.bm, self.f.bl);
|
||||||
|
self.f.apply_b(self.l.br, self.l.bm, self.l.bl);
|
||||||
|
self.l.apply_b(self.b.br, self.b.bm, self.b.bl);
|
||||||
|
self.b.apply_b(self.r.br, self.r.bm, self.r.bl);
|
||||||
|
self.r.apply_b(f_br, f_bm, f_bl);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn l(&mut self) {
|
||||||
|
self.l.rotate();
|
||||||
|
let (f_tl, f_ml, f_bl) = (self.f.tl, self.f.ml, self.f.bl);
|
||||||
|
self.f.apply_l(self.u.tl, self.u.ml, self.u.bl);
|
||||||
|
self.u.apply_l(self.b.br, self.b.mr, self.b.tr);
|
||||||
|
self.b.apply_r(self.d.bl, self.d.ml, self.d.tl);
|
||||||
|
self.d.apply_l(f_tl, f_ml, f_bl);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn r(&mut self) {
|
||||||
|
self.r.rotate();
|
||||||
|
let (f_tr, f_mr, f_br) = (self.f.tr, self.f.mr, self.f.br);
|
||||||
|
self.f.apply_r(self.d.tr, self.d.mr, self.d.br);
|
||||||
|
self.d.apply_r(self.b.bl, self.b.ml, self.b.tl);
|
||||||
|
self.b.apply_l(self.u.br, self.u.mr, self.u.tl);
|
||||||
|
self.u.apply_r(f_tr, f_mr, f_br);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
@ -121,11 +148,47 @@ mod tests {
|
|||||||
fn test_u() {
|
fn test_u() {
|
||||||
let mut c = Cube::new();
|
let mut c = Cube::new();
|
||||||
c.u();
|
c.u();
|
||||||
assert_eq!(c.d, Face::new(Color::Y));
|
assert_eq!(c.u, Face::new(Color::Y));
|
||||||
assert_eq!(c.f.tr, Color::O);
|
assert_eq!(c.f.tr, Color::O);
|
||||||
assert_eq!(c.l.tr, Color::G);
|
assert_eq!(c.l.tr, Color::G);
|
||||||
assert_eq!(c.b.tr, Color::R);
|
assert_eq!(c.b.tr, Color::R);
|
||||||
assert_eq!(c.r.tr, Color::B);
|
assert_eq!(c.r.tr, Color::B);
|
||||||
assert_eq!(c.u, Face::new(Color::W));
|
assert_eq!(c.d, Face::new(Color::W));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_d() {
|
||||||
|
let mut c = Cube::new();
|
||||||
|
c.d();
|
||||||
|
assert_eq!(c.d, Face::new(Color::W));
|
||||||
|
assert_eq!(c.f.br, Color::R);
|
||||||
|
assert_eq!(c.l.br, Color::B);
|
||||||
|
assert_eq!(c.b.br, Color::O);
|
||||||
|
assert_eq!(c.r.br, Color::G);
|
||||||
|
assert_eq!(c.u, Face::new(Color::Y));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_l() {
|
||||||
|
let mut c = Cube::new();
|
||||||
|
c.l();
|
||||||
|
assert_eq!(c.l, Face::new(Color::R));
|
||||||
|
assert_eq!(c.f.bl, Color::Y);
|
||||||
|
assert_eq!(c.d.bl, Color::G);
|
||||||
|
assert_eq!(c.b.br, Color::W);
|
||||||
|
assert_eq!(c.u.bl, Color::B);
|
||||||
|
assert_eq!(c.r, Face::new(Color::O));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_r() {
|
||||||
|
let mut c = Cube::new();
|
||||||
|
c.r();
|
||||||
|
assert_eq!(c.r, Face::new(Color::O));
|
||||||
|
assert_eq!(c.f.br, Color::W);
|
||||||
|
assert_eq!(c.d.br, Color::B);
|
||||||
|
assert_eq!(c.b.bl, Color::Y);
|
||||||
|
assert_eq!(c.u.br, Color::G);
|
||||||
|
assert_eq!(c.l, Face::new(Color::R));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user