Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main(){
- int cubo[6][9];
- int i = 0;
- int flag = 1;
- for(int i = 0 ; i < 6 ; i++){
- for(int j = 0 ; j < 9 ; j++){
- cubo[i][j] = i; //criação do cubo de numeros
- }
- }
- char movimentos[20000][2]; //matriz de movimentos, 200 movimentos com 2 letras cada
- char caractere;
- while ((caractere = getchar()) != '\n') { //forma de armazenar os as entradas na matriz de movimentos, esperando pelo enter ao inves do EOF
- if (caractere != ' ') {
- movimentos[i][0] = caractere;
- caractere = getchar();
- if (caractere != ' ') {
- movimentos[i][1] = caractere;
- i++; //quantos movimentos existem
- }
- }
- }
- // fazer o for que vai checando as entradas e trocando as posições de lugar
- // serão 12 condições
- /* esse bloco de comandos vai ser repetido ao fim*/
- if(movimentos[j][1] == 'R'){
- //U
- if(movimentos[j][0] == 'U'){
- int temp[3];
- int temp2[3];
- int temp4[3];
- int temp3[3];
- //rotacionou no sentido horário o andar de cima do cubo, por isso de 0 até 2
- for(int k = 0 ; k < 3 ; k++){
- // armazenando nas variáveis temporárias
- temp[k] = cubo[0][k];
- temp2[k] = cubo[2][k];
- temp4[k] = cubo[4][k];
- temp3[k] = cubo[3][k];
- //fazendo a troca de valores
- cubo[2][k] = temp[k];
- cubo[4][k] = temp2[k];
- cubo[3][k] = temp4[k];
- cubo[0][k] = temp3[k];
- }
- /*tem que rotacionar a face 1*/
- /*abri o primeiro latão de uma cerveja Nossa, de macaxeira*/
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[1][i];
- templ3[i] = cubo[1][i+6];
- tempc1[i] = cubo[1][indicec1[i]];
- tempc3[i] = cubo[1][indicec3[i]];
- cubo[1][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[1][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[1][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[1][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- }
- //012 345 678
- //D
- if(movimentos[j][0] == 'D'){
- int temp[3];
- int temp2[3];
- int temp4[3];
- int temp3[3];
- //rotacionou no sentido horário o andar de bauxo do cubo, por isso de 6 até 8
- for(int k = 6 ; k < 9 ; k++){
- // armazenando nas variáveis temporárias
- temp[k] = cubo[0][k];
- temp2[k] = cubo[2][k];
- temp4[k] = cubo[4][k];
- temp3[k] = cubo[3][k];
- //fazendo a troca de valores
- cubo[2][k] = temp[k];
- cubo[4][k] = temp2[k];
- cubo[3][k] = temp4[k];
- cubo[0][k] = temp3[k];
- }
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- /*segundo latão*/
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[5][i];
- templ3[i] = cubo[5][i+6];
- tempc1[i] = cubo[5][indicec1[i]];
- tempc3[i] = cubo[5][indicec3[i]];
- cubo[5][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[5][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[5][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[5][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- }
- if(movimentos[j][0] == 'R'){
- int temp[3];
- int temp1[3];
- int temp4[3];
- int temp5[3];
- //rotacionou no sentido horário a lateral direita do cubo 0>1>4>5>0
- //primeira coluna do 0 > invertido > terceira coluna do 1 > invertido > terceira coluna do 4 > invertido > terceira coluna do 5 >invertido> 0
- int indices[3] = {6, 3, 0};
- int indices1[3] = {8, 5, 2};
- int indices4[3] = {8, 5, 2};
- int indices5[3] = {8, 5, 2};
- for(int k = 0 ; k < 3 ; k++){
- // armazenando nas variáveis temporárias
- temp[k] = cubo[0][indices[k]];
- temp1[k] = cubo[1][indices1[k]];
- temp4[k] = cubo[4][indices4[k]];
- temp5[k] = cubo[5][indices5[k]];
- //fazendo a troca de valores
- cubo[1][k] = temp[k];
- cubo[4][k] = temp1[k];
- cubo[5][k] = temp4[k];
- cubo[0][k] = temp5[k];
- }
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- /*terceira, quarta e quinta cerveja pra ficar pensando melhor*/
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[3][i];
- templ3[i] = cubo[3][i+6];
- tempc1[i] = cubo[3][indicec1[i]];
- tempc3[i] = cubo[3][indicec3[i]];
- cubo[3][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[3][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[3][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[3][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- }
- //estou escrevendo essa merda enquanto sofro por alguém q nem liga/ligou pra mim de verdade
- //eu preciso urgentemente parar de ser bunda mole e criar vergonha na cara
- //se eu tivesse sangue nos olhos feito antigamente eu nunca estaria capengando emocionalmente feito agr
- if(movimentos[j][0] == 'L'){
- int temp[3];
- int temp1[3];
- int temp4[3];
- int temp5[3];
- //rotacionou no sentido horário a lateral esquerda do cubo 0>1>4>5>0
- int indices[3] = {2, 5, 8};
- int indices1[3] = {0, 3, 6};
- int indices4[3] = {0, 3, 6};
- int indices5[3] = {0, 3, 6};
- for(int k = 0 ; k < 3 ; k++){
- // armazenando nas variáveis temporárias
- temp[k] = cubo[0][indices[k]];
- temp1[k] = cubo[1][indices1[k]];
- temp4[k] = cubo[4][indices4[k]];
- temp5[k] = cubo[5][indices5[k]];
- //fazendo a troca de valores
- cubo[1][k] = temp[k];
- cubo[4][k] = temp1[k];
- cubo[5][k] = temp4[k];
- cubo[0][k] = temp5[k];
- } //sexta cerveja
- /*eu tenho q deixar de ser otário e criar vergonha na cara pqp vsf
- tem 3 garotas q são afim de mim e blz q duas estão em natal mas eu preciso seriamente só ter sangue nos olhos
- e deixar de ser otarioooooooo*/
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[2][i];
- templ3[i] = cubo[2][i+6];
- tempc1[i] = cubo[2][indicec1[i]];
- tempc3[i] = cubo[2][indicec3[i]];
- cubo[2][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[2][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[2][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[2][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- }
- if(movimentos[j][0] == 'B'){
- int temp1[3];
- int temp2[3];
- int temp3[3];
- int temp5[3];
- //1>3>5>2>1
- /*primeira linha do 1 > terceira coluna do 3 > terceira linha do 5 > primeira coluna do 2> primeira linha do 1*/
- int indices3[3] = {2, 5, 8};
- int indices1[3] = {0, 1, 2};
- int indices2[3] = {0, 3, 6};
- int indices5[3] = {6, 7, 8};
- for(int k = 0 ; k < 3 ; k++){
- // armazenando nas variáveis temporárias
- temp2[k] = cubo[2][indices2[k]];
- temp1[k] = cubo[1][indices1[k]];
- temp3[k] = cubo[3][indices3[k]];
- temp5[k] = cubo[5][indices5[k]];
- //fazendo a troca de valores
- cubo[1][indices1[k]] = temp2[k];
- cubo[3][indices3[k]] = temp1[k];
- cubo[5][indices5[k]] = temp3[k];
- cubo[2][indices2[k]] = temp5[k];
- }
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- //sétimo latão
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[0][i];
- templ3[i] = cubo[0][i+6];
- tempc1[i] = cubo[0][indicec1[i]];
- tempc3[i] = cubo[0][indicec3[i]];
- cubo[0][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[0][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[0][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[0][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- /*krl e todas elas são bonitas q só a porra, eu q tenho q deixar de ser bunda mole
- e largar essa mania de ir embora pra debaixo dos livros e esquecer da porra toda*/
- }
- if(movimentos[j][0] == 'F'){
- int temp1[3];
- int temp2[3];
- int temp3[3];
- int temp5[3];
- //1>3>5>2>1
- /*terceira linha do 1 > primeira coluna do 3 > primeira linha do 5 > terceira coluna do 2> terceira linha do 1*/
- int indices3[3] = {0, 3, 6};
- int indices1[3] = {6, 7, 8};
- int indices2[3] = {2, 5, 8};
- int indices5[3] = {0, 1, 2};
- for(int k = 0 ; k < 3 ; k++){
- // armazenando nas variáveis temporárias
- temp2[k] = cubo[2][indices2[k]];
- temp1[k] = cubo[1][indices1[k]];
- temp3[k] = cubo[3][indices3[k]];
- temp5[k] = cubo[5][indices5[k]];
- //fazendo a troca de valores
- cubo[1][indices1[k]] = temp2[k];
- cubo[3][indices3[k]] = temp1[k];
- cubo[5][indices5[k]] = temp3[k];
- cubo[2][indices2[k]] = temp5[k];
- }
- int templ1[3];
- int templ3[3];
- int tempc1[3];
- int tempc3[3];
- int indicec1[3] = {0, 3, 6};
- int indicec3[3] = {2, 5, 8};
- for(int i = 0 ; i < 3; i++){
- templ1[i] = cubo[4][i];
- templ3[i] = cubo[4][i+6];
- tempc1[i] = cubo[4][indicec1[i]];
- tempc3[i] = cubo[4][indicec3[i]];
- cubo[4][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
- cubo[4][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
- cubo[4][i] = tempc3[i]; //primeiro item da linha 1 era o primeiro item da coluna 3
- cubo[4][i+6] = tempc1[i]; //primeiro item da linha 3 era o primeiro item da coluna 1
- }
- //oitavo latão
- /*eu n posso ter tudo toda hr tbm né cmpça
- eu tenho q parar de sofrer por gete q n liga pra mim e aproveitar o bem bom com quem me quer perto
- quem sabe se eu voltar a pensar mais em carros japoneses ao inves de gente q n me quer a minha vida
- começe a andar p frente dnv*/
- }
- }
- }
- for(int i = 0 ; i < 6 ; i++){
- for(int j = 0 ; j < 9 ; j++){
- if(j == 2 || j == 5 || j == 8){
- printf("%d \n", cubo[i][j]);
- }
- else printf("%d ", cubo[i][j]);
- }
- printf("\n");
- }
- return 0 ;
- }
Add Comment
Please, Sign In to add comment