...
#pragma once
#include <iostream>
#include <vector>
#include <unistd.h> // для sleep и flush
#include "checkCubeFunctions.h"
#define Plane vector<vector<MiniCube*>>
#define RightCenter RightPlane[1][1]->RightColor()
#define LeftCenter LeftPlane[1][1]->LeftColor()
#define UpCenter UpPlane[1][1]->UpColor()
#define DownCenter DownPlane[1][1]->DownColor()
#define FrontCenter FrontPlane[1][1]->FrontColor()
#define BackCenter BackPlane[1][1]->BackColor()
#include "miniCube.h" // то, из чего состоит кбуик
#include "cubeSolving.h" // алгоритмы решения
#include "rotates.h" // повороты
#include "additional.h" // прочие вспомогательные функции
...
class rubikCube {
private:
// unsigned int FirstStepCounter = 0, SecondStepCounter = 0, ThirdStepCounter = 0,
// FourthStepCounter = 0, FifthStepCounter = 0, SixthStepCounter = 0, SeventhStepCounter = 0;
// В arr мы храним "слои" нашего кубика, в каждом из которых есть 3 вектора по 3 мини-кубика
vector<vector<vector<MiniCube>>> arr;
// Грани кубика
Plane UpPlane;
Plane DownPlane;
Plane LeftPlane;
Plane RightPlane;
Plane FrontPlane;
Plane BackPlane;
...
#pragma once
#include "rubikCube.h"
#include "rotates.h" // повороты
#include "checkCubeFunctions.h"
using namespace std;
// class rubikCube; пишет Can't resolve type 'rubikCube'
class cubeSolving {
private:
int FirstStepCounter = 0, SecondStepCounter = 0, ThirdStepCounter = 0, FourthStepCounter = 0,
FifthStepCounter = 0, SixthStepCounter = 0, SeventhStepCounter = 0;
// хотелось бы тут хранить rubikCube cube;
// но он выдаёт Can't resolve type 'rubikCube'
public:
// cubeSolving(rubikCube cube_) : cube(cube_){}
cubeSolving() = default;
// Стадии сборки кубика
void FirstStep(int count = 0, bool isWriteToConsole = true) {
if (FirstStepCounter++ > 128) {
// solvingErrors.emplace_back("\nОшибка при сборке кубика номер " + to_string(CubeCounter) + " (1й шаг)\n");
throw exception();
}
/*** тут он должен принимать приватные поля кубика, либо обращаться к ним напрямую ***/
/*** LeftCenter, FrontCenter и т.д - цвета соответствующих центров, а DownPlane, LeftPlane
и т.д - плоскости, которые хнанят по 9 мини-кубиков, каждый из которых имеет цвет на каждой из сторон ***/
if (!checkCubeFunctions::isFirstStepCompleted(LeftCenter, FrontCenter,
RightCenter, BackCenter, DownCenter, DownPlane, LeftPlane, RightPlane, FrontPlane, BackPlane)) {
...