fork download
  1. #include <cstdio>
  2.  
  3. class Color
  4. {
  5. public:
  6. float red, green, blue, alpha;
  7. Color() { }
  8. Color(float red, float green, float blue, float alpha);
  9. //Color(const Color& orig);
  10.  
  11. void drawColor();
  12. void setColor(const Color& color);
  13. void exchangeColor(Color & color);
  14. };
  15.  
  16. Color::Color(float red, float green, float blue, float alpha)
  17. {
  18. Color::red = red;
  19. Color::green = green;
  20. Color::blue = blue;
  21. Color::alpha = alpha;
  22. }
  23. const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
  24. const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
  25. const Color green = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
  26. const Color red = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
  27. const Color blue = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
  28. const Color black = Color ( 0.0f, 0.0f, 0.0f, 1.0f );
  29.  
  30. enum Side
  31. {
  32. Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
  33. };
  34.  
  35. enum Edge
  36. {
  37. ELeft, ETop, ERight, EBottom, Non
  38. };
  39.  
  40.  
  41. class Stone{
  42. public:
  43. Color color1, color2, color3;
  44. enum Side side;
  45. Edge edge1, edge2;
  46. bool StoneUsed;
  47.  
  48. Stone();
  49. Stone(Side side, Edge edge1, Edge edge2);
  50.  
  51. void overrideStone(const Stone& stone );
  52. void exchangeColors(Stone& s);
  53. void switchEdgesXZ();
  54. void switchEdgesYZCorner();
  55. void switchEdgesXYCorner();
  56. private:
  57. void getSideColor(Side side, Edge edge1, Edge edge2);
  58. void getEdgeColor(Side side, Edge edge1, Edge edge2);
  59. void getFrontCornerColors(Edge edge1, Edge edge2);
  60. void getLeftCornerColors(Edge edge1);
  61. void getRightCornerColors(Edge edge1);
  62. void getBackCornerColors(Edge edge1, Edge edge2);
  63. void getTopColors();
  64. void getBottomColors();
  65. };
  66.  
  67. Stone :: Stone(Side side, Edge edge1, Edge edge2){
  68. Stone::side = side;
  69. Stone::edge1 = edge1;
  70. Stone::edge2 = edge2;
  71.  
  72. printf("green = %f, %f, %f \n",green.red, green.green, green.blue);
  73.  
  74. Stone::StoneUsed = true;
  75.  
  76. //getSideColor(side,edge1,edge2);
  77. }
  78.  
  79. int main()
  80. {
  81. Stone stone((Side()), (Edge()), (Edge()));
  82. }
  83.  
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
green = 0.000000, 1.000000, 0.000000