Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Scianka
- {
- private:
- char *Tab;
- const char KolorSrodka;
- public:
- Scianka(char kolor);
- ~Scianka();
- void ObrotC();
- void ObrotAC();
- void Wypisz();
- void Wypisz(int i);
- void Set(int i,char k, char h, char l);
- char Get(int i);
- void Obrot(Scianka &A,int a1,int a2,int a3,Scianka &B,int b1,int b2,int b3,Scianka &C,int c1,int c2,int c3,Scianka &D,int d1,int d2,int d3);
- friend void Obrot(Scianka &A,int a1,int a2,int a3,Scianka &B,int b1,int b2,int b3,Scianka &C,int c1,int c2,int c3,Scianka &D,int d1,int d2,int d3);
- };
- Scianka::Scianka(char kolor): KolorSrodka(kolor)
- {
- Tab=new char [8];
- for (int i=0; i<9; i++) {
- Tab[i]=kolor;
- }
- Tab[4] = kolor;
- }
- Scianka::~Scianka()
- {
- //delete [] Tab;
- }
- void Scianka::Set(int i,char k,char h,char l)
- {
- Tab[i]=k;
- Tab[i+2]=h;
- Tab[i+3]=l;
- }
- char Scianka::Get(int i)
- {
- return Tab[i];
- }
- void Scianka::Wypisz(int i)
- {
- cout << Tab[(i-1)*3]<<Tab[(i-1)*3+1]<<Tab[(i-1)*3+2]<<endl;
- }
- void Scianka::Wypisz()
- {
- cout << endl;
- for(int j=1; j<4;j++)
- {
- Wypisz(j);
- }
- }
- void Scianka::ObrotC()
- {
- char kopiaWartosci;
- kopiaWartosci=Tab[0];
- Tab[0]=Tab[6];
- Tab[6]=Tab[8];
- Tab[8]=Tab[2];
- Tab[2]=kopiaWartosci;
- kopiaWartosci=Tab[1];
- Tab[1]=Tab[3];
- Tab[3]=Tab[7];
- Tab[7]=Tab[5];
- Tab[5]=kopiaWartosci;
- }
- void Scianka::ObrotAC()
- {
- char kopiaWartosci;
- Tab[4]=Tab[4];
- kopiaWartosci=Tab[0];
- Tab[0]=Tab[2];
- Tab[2]=Tab[8];
- Tab[8]=Tab[6];
- Tab[6]=kopiaWartosci;
- kopiaWartosci=Tab[1];
- Tab[1]=Tab[5];
- Tab[5]=Tab[7];
- Tab[7]=Tab[3];
- Tab[3]=kopiaWartosci;
- }
- void Obrot(Scianka &A,int a1,int a2,int a3,Scianka &B,int b1,int b2,int b3,Scianka &C,int c1,int c2,int c3,Scianka &D,int d1,int d2,int d3)
- {
- //A[ai]=>B[bi]=>C[ci]=>D[di]=>A[ai];
- char a1_kopia, a2_kopia, a3_kopia;
- a1_kopia=A.Tab[a1];
- a2_kopia=A.Tab[a2];
- a3_kopia=A.Tab[a3];
- A.Tab[a1]=D.Tab[d1];
- A.Tab[a2]=D.Tab[d2];
- A.Tab[a3]=D.Tab[d3];
- D.Tab[d1]=C.Tab[c1];
- D.Tab[d2]=C.Tab[c2];
- D.Tab[d3]=C.Tab[c3];
- C.Tab[c1]=B.Tab[b1];
- C.Tab[c2]=B.Tab[b2];
- C.Tab[c3]=B.Tab[b3];
- B.Tab[b1]=a1_kopia;
- B.Tab[b2]=a2_kopia;
- B.Tab[b3]=a3_kopia;
- }
- class Kostka
- {
- private:
- Scianka Up,Left,Front,Right,Back,Down;
- public:
- Kostka();
- void U();
- void u();
- void L();
- void l();
- void F();
- void f();
- void R();
- void r();
- void B();
- void b();
- void D();
- void d();
- void Wypisz();
- bool CzyUlozona();
- void Ruch(char c);
- };
- Kostka::Kostka()
- {//Scianka Up,Left,Front,Right,Back,Down;
- Char W = "w";
- Scianka A = Scianka('a') : Scianka;
- //Left=Scianka('R');
- //Front=Scianka('B');
- //Right=Scianka('O');
- //Back=Scianka('G');
- //Down=Scianka('Y');
- }
- int main(int argc, const char * argv[])
- {
- Scianka A = Scianka('a');
- A.Set(3, 'I','E','S');
- A.Wypisz();
- A.ObrotAC();
- A.Wypisz();
- A.ObrotC();
- A.Wypisz();
- /*
- Scianka A = Scianka('a');
- A.Set(3, 'I','E','S');
- Scianka B = Scianka('b');
- Scianka C = Scianka('c');
- Scianka D = Scianka('d');
- //cout << &tester;
- B.Set(3, 'I');
- C.Set(3, 'I');
- D.Set(3, 'I');
- B.Wypisz();
- B.ObrotAC();
- B.ObrotC();
- C.Wypisz();
- C.ObrotAC();
- C.ObrotC();
- D.Wypisz();
- D.ObrotAC();
- D.ObrotC();
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement