#include <cstdio>
class Color
{
public:
float red, green, blue, alpha;
Color() { }
Color(float red, float green, float blue, float alpha);
//Color(const Color& orig);
void drawColor();
void setColor(const Color& color);
void exchangeColor(Color & color);
};
Color::Color(float red, float green, float blue, float alpha)
{
Color::red = red;
Color::green = green;
Color::blue = blue;
Color::alpha = alpha;
}
const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
const Color green = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
const Color red = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
const Color blue = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
const Color black = Color ( 0.0f, 0.0f, 0.0f, 1.0f );
enum Side
{
Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};
enum Edge
{
ELeft, ETop, ERight, EBottom, Non
};
class Stone{
public:
Color color1, color2, color3;
enum Side side;
Edge edge1, edge2;
bool StoneUsed;
Stone();
Stone(Side side, Edge edge1, Edge edge2);
void overrideStone(const Stone& stone );
void exchangeColors(Stone& s);
void switchEdgesXZ();
void switchEdgesYZCorner();
void switchEdgesXYCorner();
private:
void getSideColor(Side side, Edge edge1, Edge edge2);
void getEdgeColor(Side side, Edge edge1, Edge edge2);
void getFrontCornerColors(Edge edge1, Edge edge2);
void getLeftCornerColors(Edge edge1);
void getRightCornerColors(Edge edge1);
void getBackCornerColors(Edge edge1, Edge edge2);
void getTopColors();
void getBottomColors();
};
Stone :: Stone(Side side, Edge edge1, Edge edge2){
Stone::side = side;
Stone::edge1 = edge1;
Stone::edge2 = edge2;
printf("green = %f, %f, %f \n",green.red, green.green, green.blue);
Stone::StoneUsed = true;
//getSideColor(side,edge1,edge2);
}
int main()
{
Stone stone((Side()), (Edge()), (Edge()));
}
I2luY2x1ZGUgPGNzdGRpbz4KCmNsYXNzIENvbG9yCnsKcHVibGljOgogIGZsb2F0IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwogIENvbG9yKCkgeyAgfSAgICAgICAKICBDb2xvcihmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CiAgLy9Db2xvcihjb25zdCBDb2xvciYgb3JpZyk7CgogIHZvaWQgZHJhd0NvbG9yKCk7CiAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpOwogIHZvaWQgZXhjaGFuZ2VDb2xvcihDb2xvciAmIGNvbG9yKTsKfTsKCQpDb2xvcjo6Q29sb3IoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpCnsKICBDb2xvcjo6cmVkID0gcmVkOwogIENvbG9yOjpncmVlbiA9IGdyZWVuOwogIENvbG9yOjpibHVlID0gYmx1ZTsKICBDb2xvcjo6YWxwaGEgPSBhbHBoYTsKfSAKY29uc3QgQ29sb3IgeWVsbG93ID0gQ29sb3IgKCAxLjBmLCAxLjBmLCAwLjBmLCAxLjBmICk7CmNvbnN0IENvbG9yIG9yYW5nZSA9IENvbG9yICggMS4wZiwgMC41ZiwgMC4wZiwgMS4wZiApOwpjb25zdCBDb2xvciBncmVlbiAgPSBDb2xvciAoIDAuMGYsIDEuMGYsIDAuMGYsIDEuMGYgKTsKY29uc3QgQ29sb3IgcmVkICAgID0gQ29sb3IgKCAxLjBmLCAwLjBmLCAwLjBmLCAxLjBmICk7CmNvbnN0IENvbG9yIGJsdWUgICA9IENvbG9yICggMC40ZiwgMC40ZiwgMS4wZiwgMS4wZiApOwpjb25zdCBDb2xvciBibGFjayAgPSBDb2xvciAoIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYgKTsKCmVudW0gU2lkZQogIHsKICAgIEZyb250ID0gMSwgTGVmdCA9IDIsIEJhY2sgPSAzLCBSaWdodCA9IDQsIFRvcCA9IDUsIEJvdHRvbSA9IDYKICB9OwoKZW51bSBFZGdlCiAgewogICAgRUxlZnQsIEVUb3AsIEVSaWdodCwgRUJvdHRvbSwgTm9uCiAgfTsKCgpjbGFzcyBTdG9uZXsKcHVibGljOgogIENvbG9yIGNvbG9yMSwgY29sb3IyLCBjb2xvcjM7CiAgZW51bSBTaWRlIHNpZGU7CiAgRWRnZSBlZGdlMSwgZWRnZTI7CiAgYm9vbCBTdG9uZVVzZWQ7CgogIFN0b25lKCk7ICAgICAgIAogIFN0b25lKFNpZGUgc2lkZSwgRWRnZSBlZGdlMSwgRWRnZSBlZGdlMik7CgogIHZvaWQgb3ZlcnJpZGVTdG9uZShjb25zdCBTdG9uZSYgc3RvbmUgKTsKICB2b2lkIGV4Y2hhbmdlQ29sb3JzKFN0b25lJiBzKTsKICB2b2lkIHN3aXRjaEVkZ2VzWFooKTsKICB2b2lkIHN3aXRjaEVkZ2VzWVpDb3JuZXIoKTsKICB2b2lkIHN3aXRjaEVkZ2VzWFlDb3JuZXIoKTsKcHJpdmF0ZToKICB2b2lkIGdldFNpZGVDb2xvcihTaWRlIHNpZGUsIEVkZ2UgZWRnZTEsIEVkZ2UgZWRnZTIpOwogIHZvaWQgZ2V0RWRnZUNvbG9yKFNpZGUgc2lkZSwgRWRnZSBlZGdlMSwgRWRnZSBlZGdlMik7CiAgdm9pZCBnZXRGcm9udENvcm5lckNvbG9ycyhFZGdlIGVkZ2UxLCBFZGdlIGVkZ2UyKTsKICB2b2lkIGdldExlZnRDb3JuZXJDb2xvcnMoRWRnZSBlZGdlMSk7CiAgdm9pZCBnZXRSaWdodENvcm5lckNvbG9ycyhFZGdlIGVkZ2UxKTsKICB2b2lkIGdldEJhY2tDb3JuZXJDb2xvcnMoRWRnZSBlZGdlMSwgRWRnZSBlZGdlMik7CiAgdm9pZCBnZXRUb3BDb2xvcnMoKTsKICB2b2lkIGdldEJvdHRvbUNvbG9ycygpOwp9OyAKClN0b25lIDo6IFN0b25lKFNpZGUgc2lkZSwgRWRnZSBlZGdlMSwgRWRnZSBlZGdlMil7CiAgU3RvbmU6OnNpZGUgPSBzaWRlOwogIFN0b25lOjplZGdlMSA9IGVkZ2UxOwogIFN0b25lOjplZGdlMiA9IGVkZ2UyOwoKICBwcmludGYoImdyZWVuID0gJWYsICVmLCAlZiBcbiIsZ3JlZW4ucmVkLCBncmVlbi5ncmVlbiwgZ3JlZW4uYmx1ZSk7CgogIFN0b25lOjpTdG9uZVVzZWQgPSB0cnVlOwoKICAvL2dldFNpZGVDb2xvcihzaWRlLGVkZ2UxLGVkZ2UyKTsKfSAKCmludCBtYWluKCkKewogIFN0b25lIHN0b25lKChTaWRlKCkpLCAoRWRnZSgpKSwgKEVkZ2UoKSkpOwp9Cg==