fork download
  1. #include <string>
  2. #include <vector>
  3. #include <cstdio>
  4.  
  5. class Color
  6. {
  7. public:
  8. float r, g, b, alpha;
  9. Color() { }
  10. Color(float r, float g, float b, float alpha);
  11. //Color(const Color& orig);
  12.  
  13. void drawColor();
  14. void setColor(const Color& color);
  15. void exchangeColor(Color & color);
  16. };
  17.  
  18. Color::Color(float red, float green, float blue, float alpha)
  19. {
  20. Color::r = red;
  21. Color::g = green;
  22. Color::b = blue;
  23. Color::alpha = alpha;
  24. }
  25.  
  26. const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
  27. const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
  28. const Color green = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
  29. const Color red = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
  30. const Color blue = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
  31. const Color black = Color ( 0.0f, 0.0f, 0.0f, 1.0f );
  32.  
  33. enum Side
  34. {
  35. Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
  36. };
  37.  
  38. enum Edge
  39. {
  40. ELeft, ETop, ERight, EBottom, Non
  41. };
  42.  
  43.  
  44. class Stone{
  45. public:
  46. Color color1, color2, color3;
  47. Side side;
  48. Edge edge1, edge2;
  49. bool StoneUsed;
  50.  
  51. Stone(){};
  52. Stone(Side side, Edge edge1, Edge edge2);
  53.  
  54. };
  55.  
  56. class Cube{
  57. public:
  58. std::vector<std::vector<std::vector<Stone> > > cube;
  59. int cubesize;
  60. Cube() { }
  61. Cube(int cubesize);
  62. static std::string identifyColor(Color& color);
  63. private:
  64. bool isCorner(int x, int y, int z);
  65. void setStone(int x, int y, int z);
  66. };
  67.  
  68. using namespace std;
  69.  
  70. Cube :: Cube(int sizeOfCube)
  71. {
  72. cubesize = sizeOfCube;
  73.  
  74. for(int x = 0; x < cubesize; x++)
  75. {
  76. vector<vector<Stone> > side (cubesize);
  77. cube.push_back(side);
  78. for(int y = 0; y < cubesize; y++)
  79. {
  80. vector<Stone> line (cubesize);
  81. cube.at(x).push_back(line);
  82. for(int z = 0; z < cubesize; z++)
  83. {
  84. cube.at(x).at(y).push_back(Stone());
  85. }
  86. }
  87. }
  88.  
  89. // Stein vorne oben links mit Farben grün-rot-gelb
  90.  
  91. string col;
  92. Color color = Color(green);
  93. // col = identifyColor(color);
  94.  
  95. printf("%s \n",col.c_str());
  96. printf("%f, %f, %f \n",green.r, green.g, green.b);
  97. printf("-------------------------------\n");
  98.  
  99. cube.at(0).at(0).at(0) = Stone(Front, ELeft, ETop);
  100.  
  101. col;
  102. color = Color(green);
  103. // col = identifyColor(color);
  104.  
  105. printf("%s \n",col.c_str());
  106. printf("%f, %f, %f \n",green.r, green.g, green.b);
  107. printf("-------------------------------\n");
  108. }
  109.  
  110.  
  111.  
  112. Stone :: Stone(Side side, Edge edge1, Edge edge2){
  113.  
  114. printf("%f, %f, %f \n",green.r, green.g, green.b);
  115. printf("-------------------------------\n");
  116.  
  117. // getSideColor(side,edge1,edge2);
  118.  
  119. printf("%f, %f, %f \n",green.r, green.g, green.b);
  120. printf("-------------------------------\n");
  121. }
  122.  
  123. int main()
  124. {
  125. std::vector<std::vector<std::vector<Stone> > > cube;
  126. string col;
  127. Color color = Color(green);
  128. // col = identifyColor(color);
  129.  
  130. printf("%s \n",col.c_str());
  131. printf("%f, %f, %f \n",green.r, green.g, green.b);
  132. printf("-------------------------------\n");
  133.  
  134. // Hier wird ganz offensichtlich der Konstruktor von Stone aufgerufen.
  135. Stone(Front, ELeft, ETop);
  136.  
  137. col;
  138. color = Color(green);
  139. //col = identifyColor(color);
  140.  
  141. printf("%s \n",col.c_str());
  142. printf("%f, %f, %f \n",green.r, green.g, green.b);
  143. printf("-------------------------------\n");
  144. }
  145.  
Success #stdin #stdout 0.01s 2740KB
stdin
Standard input is empty
stdout
 
0.000000, 1.000000, 0.000000 
-------------------------------
0.000000, 1.000000, 0.000000 
-------------------------------
0.000000, 1.000000, 0.000000 
-------------------------------
 
0.000000, 1.000000, 0.000000 
-------------------------------