/* * Programador: Julio Cesar Hernandez Hernandez * Materia: Divercion * Fecha: 30/06/2011 Escuela: ITSDZapopan * Carrera: Ing. En Sistemas Computacionales * Descripcion: Recreacion de los Giros en el * Cubo de Rubik en 3 Dimensiones */ #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int cubo[3][3][3]; int mtem[3][3][3]; int t; void guarda(); void imprime_cubo(); void menu(); void gira_frente_izquierda(); void gira_frente_derecha(); void gira_izquierda_arriba(); void gira_izquierda_abajo(); void gira_derecha_arriba(); void gira_derecha_abajo(); void gira_arriba_izquierda(); void gira_arriba_derecha(); void gira_abajo_izquierda(); void gira_abajo_derecha(); void gira_fondo_izquierda(); void gira_fondo_derecha(); int main(){ int i = 1; for(int f = 0; f < 3; f++){ for(int l = 0; l < 3; l++){ for(int a = 0; a < 3; a++){ cubo[f][l][a] = i; mtem[f][l][a] = i; i++; } } } menu(); return EXIT_SUCCESS; } void guarda(){ for(int f = 0; f < 3; f++){ for(int l = 0; l < 3; l++){ for(int a = 0; a < 3; a++){ cubo[f][l][a] = mtem[f][l][a]; } } } } void imprime_cubo(){ for(int f = 0; f < 3; f++){ for(int l = 0; l < 3; l++){ for(int a = 0; a < 3; a++){ cout<<setw(4)<<cubo[f][l][a]; } cout<<endl; } cout<<endl; } } void menu(){ int opc = 0; while(opc != 14){ system("cls"); cout << "Cubo de 3 dimenciones (:Selecciona una opcion) :"<<endl << " 1) Mostrar Cubo"<<endl << " 2) Girar Frente Izquierda"<<endl << " 3) Girar Frente Derecha"<<endl << " 4) Girar Fondo Izquierda"<<endl << " 5) Girar Fondo Derecha"<<endl << " 6) Girar Izquierda Arriba"<<endl << " 7) Girar Izquierda Abajo"<<endl << " 8) Girar Derecha Arriba"<<endl << " 9) Girar Derecha Abajo"<<endl << " 10) Girar Arriba Izquierda"<<endl << " 11) Girar Arriba Derecha"<<endl << " 12) Girar Abajo Izquierda"<<endl << " 13) Girar Abajo Derecha"<<endl << " 14) Salir"<<endl; cin>>opc; switch(opc){ case 1: imprime_cubo(); system("Pause>nul"); break; case 2: gira_frente_izquierda(); break; case 3: gira_frente_derecha(); break; case 4: gira_fondo_izquierda(); break; case 5: gira_fondo_derecha(); break; case 6: gira_izquierda_arriba(); break; case 7: gira_izquierda_abajo(); break; case 8: gira_derecha_arriba(); break; case 9: gira_derecha_abajo(); break; case 10: gira_arriba_izquierda(); break; case 11: gira_arriba_derecha(); break; case 12: gira_abajo_izquierda(); break; case 13: gira_abajo_derecha(); break; case 14: cout<<"Programa Hecho Por Julio Cesar Hernandez Hernandez"; break; default: cout<<"Error de seleccion"; system("Pause>nul"); break; } } } void gira_frente_izquierda(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[0][t][x] = cubo[0][x][y]; } t++; } guarda(); } void gira_frente_derecha(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[0][x][t] = cubo[0][y][x]; } t++; } guarda(); } void gira_izquierda_arriba(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[0][t][x] = cubo[0][x][y]; } t++; } guarda(); } void gira_izquierda_abajo(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[x][t][0] = cubo[y][x][0]; } t++; } guarda(); } void gira_derecha_arriba(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[t][x][2] = cubo[x][y][2]; } t++; } guarda(); } void gira_derecha_abajo(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[x][t][2] = cubo[y][x][2]; } t++; } guarda(); } void gira_arriba_izquierda(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[t][0][x] = cubo[x][0][y]; } t++; } guarda(); } void gira_arriba_derecha(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[x][0][t] = cubo[y][0][x]; } t++; } guarda(); } void gira_abajo_izquierda(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[t][2][x] = cubo[x][2][y]; } t++; } guarda(); } void gira_abajo_derecha(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[x][2][t] = cubo[y][2][x]; } t++; } guarda(); } void gira_fondo_izquierda(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[2][t][x] = cubo[2][x][y]; } t++; } guarda(); } void gira_fondo_derecha(){ t = 0; for(int y = 2; y >= 0; --y){ for(int x = 0; x < 3; x++){ mtem[2][x][t] = cubo[2][y][x]; } t++; } guarda(); }
Páginas
NIMADRES
Mostrando entradas con la etiqueta dimensiones. Mostrar todas las entradas
Mostrando entradas con la etiqueta dimensiones. Mostrar todas las entradas
Girar Una Matriz De Tres dimensiones [Cubo de Rukbi] En C++
Girar Una Matriz De Dos Dimensiones En C++
#include <cstdlib> #include <iostream> #include <ctime> #define n 5 using namespace std; void gira_izquierda(); void gira_derecha(); void guarda_tem(); int matriz[n][n]; int mTem[n][n]; int main() { int opc; srand(time(0)); for(int y = 0; y < n; y++){ for(int x = 0; x < n; x++){ matriz[y][x] = rand()%10; cout<<matriz[y][x]<<" "; } cout<<endl; } cout<<endl; while(true){ cout<<"1) Gira Izquierda\n2) Gira Derecha\n3) Salir\n"; cin>>opc; switch(opc){ case 1: gira_izquierda(); break; case 2: gira_derecha(); break; case 3: return 0; default: cerr<<"Error"; cin.get(); cin.get(); system("cls"); break; } } return 0; } void gira_izquierda(){ int t = 0; for(int i = n-1; i >= 0; --i){ for(int j = 0; j < n; j++){ mTem[t][j] = matriz[j][i]; } t++; } guarda_tem(); } void gira_derecha(){ int t; for(int i = 0; i < n; i++){ t = 0; for(int j = n-1; j >= 0; --j){ mTem[i][t] = matriz[j][i]; t++; } } guarda_tem(); } void guarda_tem(){ for(int x = 0; x < n; x++){ for(int y = 0; y < n; y++){ matriz[x][y] = mTem[x][y]; cout<<matriz[x][y]<<" "; } cout<<endl; } }
Suscribirse a:
Entradas (Atom)