Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <iomanip>
- #include <ctime>
- using namespace std;
- void genTab(char t[][3], char znak);
- void piszTab(char t1[][3], char t2[][3], char t3[][3], char t4[][3], char t5[][3], char t6[][3]);
- void rotateOneTwoThree(char t2[][3], char t3[][3], char t4[][3], char t5[][3], int zmienna);
- void rotateFourFiveSix(char t1[][3], char t3[][3], char t5[][3], char t6[][3], int zmienna);
- void rotateSevenEightNine(char t1[][3], char t2[][3], char t4[][3], char t6[][3], int zmienna);
- void rotateWallCounterClockwise(char t[][3]);
- void rotateWallClockwise(char t[][3]);
- void rotateUp(char t1[][3], char t3[][3], char t5[][3], char t6[][3]);
- void rotateDown(char t1[][3], char t3[][3], char t5[][3], char t6[][3]);
- void rotateLeft(char t2[][3], char t3[][3], char t4[][3], char t5[][3]);
- void rotateRight(char t2[][3], char t3[][3], char t4[][3], char t5[][3]);
- void rotateClockwise(char t1[][3], char t2[][3], char t4[][3], char t6[][3]);
- void rotateCounterClockwise(char t1[][3], char t2[][3], char t4[][3], char t6[][3]);
- int main()
- {
- cout<<"Witaj w programie umozliwiajacym ukladanie kostki Rubika."<<endl;
- cout<<"Do dyspozycji masz:"<<endl;
- cout<<"1)obroty scian 1-9."<<endl;
- cout<<"2)obroty kostki W, A, S, D."<<endl;
- cout<<"3)obrot zgodnie ze wskazowkami zegara i przeciwnie do nich."<<endl;
- cout<<"Oto ona. Najpierw powinienes ja wymieszac."<<endl;
- char znak;
- znak = 97;
- char t1[3][3];
- char t2[3][3];
- char t3[3][3];
- char t4[3][3];
- char t5[3][3];
- char t6[3][3];
- genTab(t1, znak+2);
- genTab(t2, znak);
- genTab(t3, znak+1);
- genTab(t4, znak+4);
- genTab(t5, znak+5);
- genTab(t6, znak+3);
- piszTab(t1, t2, t3, t4, t5, t6);
- char klawisz;
- int zmienna=0;
- bool end=false;
- while(!end)
- {
- if(klawisz!=10)
- cout<<"Jaki obrot chcesz wykonac ?" <<endl;
- klawisz=getchar();
- switch(klawisz)
- {
- case '1': rotateOneTwoThree(t2,t3,t4,t5, zmienna);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '2': rotateOneTwoThree(t2,t3,t4,t5, zmienna+1);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '3': rotateOneTwoThree(t2,t3,t4,t5, zmienna+2);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '4': rotateFourFiveSix(t1,t3,t5,t6, zmienna);
- rotateWallCounterClockwise(t2);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '5': rotateFourFiveSix(t1,t3,t5,t6, zmienna+1);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '6': rotateFourFiveSix(t1,t3,t5,t6, zmienna+2);
- rotateWallClockwise(t4);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '7': rotateSevenEightNine(t1,t2,t4,t6, zmienna);
- rotateWallCounterClockwise(t3);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '8': rotateSevenEightNine(t1,t2,t4,t6, zmienna +1);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case '9': rotateSevenEightNine(t1,t2,t4,t6, zmienna +2);
- rotateWallClockwise(t5);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'w': rotateWallCounterClockwise(t2);
- rotateWallClockwise(t4);
- rotateUp(t1,t3,t5,t6);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'a': rotateWallClockwise(t1);
- rotateWallCounterClockwise(t6);
- rotateLeft(t2,t3,t4,t5);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 's': rotateWallClockwise(t2);
- rotateWallCounterClockwise(t4);
- rotateDown(t1,t3,t5,t6);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'd': rotateWallCounterClockwise(t1);
- rotateWallClockwise(t6);
- rotateRight(t2,t3,t4,t5);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'x': rotateClockwise(t1, t2, t4, t6);
- rotateWallClockwise(t3);
- rotateWallCounterClockwise(t5);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'z': rotateCounterClockwise(t1, t2, t4, t6);
- rotateWallCounterClockwise(t3);
- rotateWallClockwise(t5);
- piszTab(t1, t2, t3, t4, t5, t6);
- break;
- case 'e':end=true;
- break;
- case 10 :;
- break;
- default:cout<<"Nieprawidlowy przycisk !"<<endl;
- }
- }
- return 0;
- }
- void genTab(char t[][3], char znak)
- {
- for (int i=0; i<3; i++)
- for (int j=0; j<3; j++)
- {
- t[i][j]=znak;
- }
- }
- void piszTab(char t1[][3], char t2[][3], char t3[][3], char t4[][3], char t5[][3], char t6[][3])
- {
- cout<<endl<<endl;
- cout<<setw(13)<<t1[0][0]<<setw(2)<<t1[0][1]<<setw(2)<<t1[0][2]<<endl;
- cout<<setw(13)<<t1[1][0]<<setw(2)<<t1[1][1]<<setw(2)<<t1[1][2]<<endl;
- cout<<setw(13)<<t1[2][0]<<setw(2)<<t1[2][1]<<setw(2)<<t1[2][2]<<setw(14)<<"6 5 4"<<endl<<endl;
- cout<<"1 "<<t2[0][0]<<setw(2)<<t2[0][1]<<setw(2)<<t2[0][2]<<setw(3)<<t3[0][0]<<setw(2)<<t3[0][1]<<setw(2)<<t3[0][2]<<setw(3)<<t4[0][0]<<setw(2)<<t4[0][1]<<setw(2)<<t4[0][2]<<setw(3)<<t5[0][0]<<setw(2)<<t5[0][1]<<setw(2)<<t5[0][2]<<setw(3)<<endl;
- cout<<"2 "<<t2[1][0]<<setw(2)<<t2[1][1]<<setw(2)<<t2[1][2]<<setw(3)<<t3[1][0]<<setw(2)<<t3[1][1]<<setw(2)<<t3[1][2]<<setw(3)<<t4[1][0]<<setw(2)<<t4[1][1]<<setw(2)<<t4[1][2]<<setw(3)<<t5[1][0]<<setw(2)<<t5[1][1]<<setw(2)<<t5[1][2]<<setw(3)<<endl;
- cout<<"3 "<<t2[2][0]<<setw(2)<<t2[2][1]<<setw(2)<<t2[2][2]<<setw(3)<<t3[2][0]<<setw(2)<<t3[2][1]<<setw(2)<<t3[2][2]<<setw(3)<<t4[2][0]<<setw(2)<<t4[2][1]<<setw(2)<<t4[2][2]<<setw(3)<<t5[2][0]<<setw(2)<<t5[2][1]<<setw(2)<<t5[2][2]<<setw(3)<<endl<<endl;
- cout<<setw(12)<<"7 "<<t6[0][0]<<setw(2)<<t6[0][1]<<setw(2)<<t6[0][2]<<endl;
- cout<<setw(12)<<"8 "<<t6[1][0]<<setw(2)<<t6[1][1]<<setw(2)<<t6[1][2]<<endl;
- cout<<setw(12)<<"9 "<<t6[2][0]<<setw(2)<<t6[2][1]<<setw(2)<<t6[2][2]<<endl<<endl;
- cout<<setw(17)<<"4 5 6"<<endl<<endl<<endl<<endl;
- }
- void rotateOneTwoThree(char t2[][3], char t3[][3], char t4[][3], char t5[][3], int zmienna)
- {
- char tp;
- for(int j=0; j<3; j++)
- {
- tp=t5[zmienna][j];
- t5[zmienna][j]=t4[zmienna][j];
- t4[zmienna][j]=t3[zmienna][j];
- t3[zmienna][j]=t2[zmienna][j];
- t2[zmienna][j]=tp;
- }
- }
- void rotateFourFiveSix(char t1[][3], char t3[][3], char t5[][3], char t6[][3], int zmienna)
- {
- char tp;
- for(int i=0; i<3; i++)
- {
- tp=t1[i][zmienna];
- t1[i][zmienna]=t3[i][zmienna];
- t3[i][zmienna]=t6[i][zmienna];
- t6[i][zmienna]=t5[2-i][2-zmienna];
- t5[2-i][2-zmienna]=tp;
- }
- }
- void rotateSevenEightNine(char t1[][3], char t2[][3], char t4[][3], char t6[][3], int zmienna)
- {
- char tp;
- for(int i=0; i<3; i++)
- {
- tp=t1[2-zmienna][i];
- t1[2-zmienna][i]=t4[i][zmienna];
- t4[i][zmienna]=t6[zmienna][2-i];
- t6[zmienna][2-i]=t2[2-i][2-zmienna];
- t2[2-i][2-zmienna]=tp;
- }
- }
- void rotateWallCounterClockwise(char t[][3])
- {
- char tp;
- for(int i=0; i<2; i++)
- {
- tp=t[0][i];
- t[0][i]=t[i][2];
- t[i][2]=t[2][2-i];
- t[2][2-i]=t[2-i][0];
- t[2-i][0]=tp;
- }
- }
- void rotateWallClockwise(char t[][3])
- {
- char tp;
- for(int i=0; i<2; i++)
- {
- tp=t[2-i][0];
- t[2-i][0]=t[2][2-i];
- t[2][2-i]=t[i][2];
- t[i][2]=t[0][i];
- t[0][i]=tp;
- }
- }
- void rotateUp(char t1[][3], char t3[][3], char t5[][3], char t6[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t3[i][j];
- t3[i][j]=t6[i][j];
- t6[i][j]=t5[2-i][2-j];
- t5[2-i][2-j]=t1[i][j];
- t1[i][j]=tp;
- }
- }
- void rotateDown(char t1[][3], char t3[][3], char t5[][3], char t6[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t1[i][j];
- t1[i][j]=t5[2-i][2-j];
- t5[2-i][2-j]=t6[i][j];
- t6[i][j]=t3[i][j];
- t3[i][j]=tp;
- }
- }
- void rotateLeft(char t2[][3], char t3[][3], char t4[][3], char t5[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t2[i][j];
- t2[i][j]=t3[i][j];
- t3[i][j]=t4[i][j];
- t4[i][j]=t5[i][j];
- t5[i][j]=tp;
- }
- }
- void rotateRight(char t2[][3], char t3[][3], char t4[][3], char t5[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t5[i][j];
- t5[i][j]=t4[i][j];
- t4[i][j]=t3[i][j];
- t3[i][j]=t2[i][j];
- t2[i][j]=tp;
- }
- }
- void rotateClockwise(char t1[][3], char t2[][3], char t4[][3], char t6[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t1[j][2-i];
- t1[j][2-i]=t2[i][j];
- t2[i][j]=t6[2-j][i];
- t6[2-j][i]=t4[2-i][2-j];
- t4[2-i][2-j]=tp;
- }
- }
- void rotateCounterClockwise(char t1[][3], char t2[][3], char t4[][3], char t6[][3])
- {
- char tp;
- for(int i=0; i<3; i++)
- for(int j=0; j<3; j++)
- {
- tp=t4[2-i][2-j];
- t4[2-i][2-j]=t6[2-j][i];
- t6[2-j][i]=t2[i][j];
- t2[i][j]=t1[j][2-i];
- t1[j][2-i]=tp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement