that_one_nigga_you_k

cubo magico

Nov 17th, 2023 (edited)
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 15.31 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     int cubo[6][9];
  6.     int i = 0;
  7.     int flag = 1;
  8.  
  9.     for(int i = 0 ; i < 6 ; i++){
  10.         for(int j = 0 ; j < 9 ; j++){
  11.             cubo[i][j] = i;   //criação do cubo de numeros
  12.         }
  13.     }
  14.  
  15.     char movimentos[20000][2]; //matriz de movimentos, 200 movimentos com 2 letras cada
  16.     char caractere;
  17.  
  18.     while ((caractere = getchar()) != '\n') { //forma de armazenar os as entradas na matriz de movimentos, esperando pelo enter ao inves do EOF
  19.         if (caractere != ' ') {
  20.             movimentos[i][0] = caractere;
  21.  
  22.             caractere = getchar();
  23.  
  24.             if (caractere != ' ') {
  25.                 movimentos[i][1] = caractere;
  26.                 i++; //quantos movimentos existem
  27.             }
  28.         }
  29.     }
  30.  
  31. // fazer o for que vai checando as entradas e trocando as posições de lugar
  32. // serão 12 condições
  33. /* esse bloco de comandos vai ser repetido ao fim*/
  34.         if(movimentos[j][1] == 'R'){
  35.             //U
  36.                 if(movimentos[j][0] == 'U'){
  37.                     int temp[3];
  38.                     int temp2[3];
  39.                     int temp4[3];
  40.                     int temp3[3];
  41.                     //rotacionou no sentido horário o andar de cima do cubo, por isso de 0 até 2
  42.                     for(int k = 0 ; k < 3 ; k++){  
  43.                         // armazenando nas variáveis temporárias
  44.                         temp[k] = cubo[0][k];
  45.                         temp2[k] = cubo[2][k];
  46.                         temp4[k] = cubo[4][k];
  47.                         temp3[k] = cubo[3][k];
  48.                         //fazendo a troca de valores
  49.                         cubo[2][k] = temp[k];
  50.                         cubo[4][k] = temp2[k];
  51.                         cubo[3][k] = temp4[k];
  52.                         cubo[0][k] = temp3[k];            
  53.                     }
  54.                     /*tem que rotacionar a face 1*/
  55.  
  56.                     /*abri o primeiro latão de uma cerveja Nossa, de macaxeira*/
  57.                    
  58.                     int templ1[3];
  59.                     int templ3[3];
  60.                     int tempc1[3];
  61.                     int tempc3[3];
  62.  
  63.                     int indicec1[3] = {0, 3, 6};
  64.                     int indicec3[3] = {2, 5, 8};
  65.  
  66.                     for(int i = 0 ; i < 3; i++){
  67.                         templ1[i] = cubo[1][i];
  68.                         templ3[i] = cubo[1][i+6];
  69.                         tempc1[i] = cubo[1][indicec1[i]];
  70.                         tempc3[i] = cubo[1][indicec3[i]];
  71.  
  72.                         cubo[1][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  73.                         cubo[1][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  74.                         cubo[1][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  75.                         cubo[1][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  76.                     }
  77.  
  78.                 }
  79.             //012 345 678
  80.             //D
  81.             if(movimentos[j][0] == 'D'){
  82.                     int temp[3];
  83.                     int temp2[3];
  84.                     int temp4[3];
  85.                     int temp3[3];
  86.                     //rotacionou no sentido horário o andar de bauxo do cubo, por isso de 6 até 8
  87.                     for(int k = 6 ; k < 9 ; k++){  
  88.                         // armazenando nas variáveis temporárias
  89.                         temp[k] = cubo[0][k];
  90.                         temp2[k] = cubo[2][k];
  91.                         temp4[k] = cubo[4][k];
  92.                         temp3[k] = cubo[3][k];
  93.                         //fazendo a troca de valores
  94.                         cubo[2][k] = temp[k];
  95.                         cubo[4][k] = temp2[k];
  96.                         cubo[3][k] = temp4[k];
  97.                         cubo[0][k] = temp3[k];            
  98.                     }
  99.  
  100.                     int templ1[3];
  101.                     int templ3[3];
  102.                     int tempc1[3];
  103.                     int tempc3[3];
  104.  
  105.                     int indicec1[3] = {0, 3, 6};
  106.                     int indicec3[3] = {2, 5, 8};
  107.                    
  108.                     /*segundo latão*/
  109.  
  110.                     for(int i = 0 ; i < 3; i++){
  111.                         templ1[i] = cubo[5][i];
  112.                         templ3[i] = cubo[5][i+6];
  113.                         tempc1[i] = cubo[5][indicec1[i]];
  114.                         tempc3[i] = cubo[5][indicec3[i]];
  115.  
  116.                         cubo[5][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  117.                         cubo[5][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  118.                         cubo[5][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  119.                         cubo[5][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  120.                     }
  121.             }
  122.  
  123.             if(movimentos[j][0] == 'R'){
  124.                     int temp[3];
  125.                     int temp1[3];
  126.                     int temp4[3];
  127.                     int temp5[3];
  128.                     //rotacionou no sentido horário a lateral direita do cubo 0>1>4>5>0
  129.                     //primeira coluna do 0 > invertido > terceira coluna do 1 > invertido > terceira coluna do 4 > invertido > terceira coluna do 5 >invertido> 0
  130.                     int indices[3] = {6, 3, 0};
  131.                     int indices1[3] = {8, 5, 2};
  132.                     int indices4[3] = {8, 5, 2};
  133.                     int indices5[3] = {8, 5, 2};
  134.  
  135.                     for(int k = 0 ; k < 3 ; k++){  
  136.                         // armazenando nas variáveis temporárias
  137.                         temp[k] = cubo[0][indices[k]];
  138.                         temp1[k] = cubo[1][indices1[k]];
  139.                         temp4[k] = cubo[4][indices4[k]];
  140.                         temp5[k] = cubo[5][indices5[k]];
  141.                         //fazendo a troca de valores
  142.                         cubo[1][k] = temp[k];
  143.                         cubo[4][k] = temp1[k];
  144.                         cubo[5][k] = temp4[k];
  145.                         cubo[0][k] = temp5[k];            
  146.                     }
  147.  
  148.                     int templ1[3];
  149.                     int templ3[3];
  150.                     int tempc1[3];
  151.                     int tempc3[3];
  152.                    
  153.                     /*terceira, quarta e quinta cerveja pra ficar pensando melhor*/
  154.  
  155.                     int indicec1[3] = {0, 3, 6};
  156.                     int indicec3[3] = {2, 5, 8};
  157.  
  158.                     for(int i = 0 ; i < 3; i++){
  159.                         templ1[i] = cubo[3][i];
  160.                         templ3[i] = cubo[3][i+6];
  161.                         tempc1[i] = cubo[3][indicec1[i]];
  162.                         tempc3[i] = cubo[3][indicec3[i]];
  163.  
  164.                         cubo[3][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  165.                         cubo[3][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  166.                         cubo[3][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  167.                         cubo[3][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  168.                     }
  169.             }
  170.            
  171.             //estou escrevendo essa merda enquanto sofro por alguém q nem liga/ligou pra mim de verdade
  172.             //eu preciso urgentemente parar de ser bunda mole e criar vergonha na cara
  173.             //se eu tivesse sangue nos olhos feito antigamente eu nunca estaria capengando emocionalmente feito agr
  174.            
  175.             if(movimentos[j][0] == 'L'){
  176.                     int temp[3];
  177.                     int temp1[3];
  178.                     int temp4[3];
  179.                     int temp5[3];
  180.                     //rotacionou no sentido horário a lateral esquerda do cubo 0>1>4>5>0
  181.                     int indices[3] = {2, 5, 8};
  182.                     int indices1[3] = {0, 3, 6};
  183.                     int indices4[3] = {0, 3, 6};
  184.                     int indices5[3] = {0, 3, 6};
  185.  
  186.                     for(int k = 0 ; k < 3 ; k++){  
  187.                         // armazenando nas variáveis temporárias
  188.                         temp[k] = cubo[0][indices[k]];
  189.                         temp1[k] = cubo[1][indices1[k]];
  190.                         temp4[k] = cubo[4][indices4[k]];
  191.                         temp5[k] = cubo[5][indices5[k]];
  192.                         //fazendo a troca de valores
  193.                         cubo[1][k] = temp[k];
  194.                         cubo[4][k] = temp1[k];
  195.                         cubo[5][k] = temp4[k];
  196.                         cubo[0][k] = temp5[k];            
  197.                     }   //sexta cerveja
  198.                    
  199.                     /*eu tenho q deixar de ser otário e criar vergonha na cara pqp vsf
  200.                     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
  201.                     e deixar de ser otarioooooooo*/
  202.                     int templ1[3];
  203.                     int templ3[3];
  204.                     int tempc1[3];
  205.                     int tempc3[3];
  206.  
  207.                     int indicec1[3] = {0, 3, 6};
  208.                     int indicec3[3] = {2, 5, 8};
  209.  
  210.                     for(int i = 0 ; i < 3; i++){
  211.                         templ1[i] = cubo[2][i];
  212.                         templ3[i] = cubo[2][i+6];
  213.                         tempc1[i] = cubo[2][indicec1[i]];
  214.                         tempc3[i] = cubo[2][indicec3[i]];
  215.  
  216.                         cubo[2][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  217.                         cubo[2][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  218.                         cubo[2][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  219.                         cubo[2][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  220.                     }
  221.             }
  222.            
  223.             if(movimentos[j][0] == 'B'){
  224.                 int temp1[3];
  225.                 int temp2[3];
  226.                 int temp3[3];
  227.                 int temp5[3];
  228.  
  229.                 //1>3>5>2>1
  230.                 /*primeira linha do 1 > terceira coluna do 3 > terceira linha do 5 > primeira coluna do 2> primeira linha do 1*/
  231.  
  232.                     int indices3[3] = {2, 5, 8};
  233.                     int indices1[3] = {0, 1, 2};
  234.                     int indices2[3] = {0, 3, 6};
  235.                     int indices5[3] = {6, 7, 8};
  236.  
  237.                     for(int k = 0 ; k < 3 ; k++){  
  238.                         // armazenando nas variáveis temporárias
  239.                         temp2[k] = cubo[2][indices2[k]];
  240.                         temp1[k] = cubo[1][indices1[k]];
  241.                         temp3[k] = cubo[3][indices3[k]];
  242.                         temp5[k] = cubo[5][indices5[k]];
  243.                         //fazendo a troca de valores
  244.                         cubo[1][indices1[k]] = temp2[k];
  245.                         cubo[3][indices3[k]] = temp1[k];
  246.                         cubo[5][indices5[k]] = temp3[k];
  247.                         cubo[2][indices2[k]] = temp5[k];            
  248.                     }
  249.  
  250.                     int templ1[3];
  251.                     int templ3[3];
  252.                     int tempc1[3];
  253.                     int tempc3[3];
  254.                
  255.                 //sétimo latão
  256.                
  257.              
  258.  
  259.                     int indicec1[3] = {0, 3, 6};
  260.                     int indicec3[3] = {2, 5, 8};
  261.  
  262.                     for(int i = 0 ; i < 3; i++){
  263.                         templ1[i] = cubo[0][i];
  264.                         templ3[i] = cubo[0][i+6];
  265.                         tempc1[i] = cubo[0][indicec1[i]];
  266.                         tempc3[i] = cubo[0][indicec3[i]];
  267.  
  268.                         cubo[0][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  269.                         cubo[0][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  270.                         cubo[0][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  271.                         cubo[0][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  272.                     }
  273.                     /*krl e todas elas são bonitas q só a porra, eu q tenho q deixar de ser bunda mole
  274.                      e largar essa mania de ir embora pra debaixo dos livros e esquecer da porra toda*/
  275.  
  276.             }
  277.  
  278.             if(movimentos[j][0] == 'F'){
  279.                 int temp1[3];
  280.                 int temp2[3];
  281.                 int temp3[3];
  282.                 int temp5[3];
  283.  
  284.                 //1>3>5>2>1
  285.                 /*terceira linha do 1 > primeira coluna do 3 > primeira linha do 5 > terceira coluna do 2> terceira linha do 1*/
  286.  
  287.                     int indices3[3] = {0, 3, 6};
  288.                     int indices1[3] = {6, 7, 8};
  289.                     int indices2[3] = {2, 5, 8};
  290.                     int indices5[3] = {0, 1, 2};
  291.  
  292.                     for(int k = 0 ; k < 3 ; k++){  
  293.                         // armazenando nas variáveis temporárias
  294.                         temp2[k] = cubo[2][indices2[k]];
  295.                         temp1[k] = cubo[1][indices1[k]];
  296.                         temp3[k] = cubo[3][indices3[k]];
  297.                         temp5[k] = cubo[5][indices5[k]];
  298.                         //fazendo a troca de valores
  299.                         cubo[1][indices1[k]] = temp2[k];
  300.                         cubo[3][indices3[k]] = temp1[k];
  301.                         cubo[5][indices5[k]] = temp3[k];
  302.                         cubo[2][indices2[k]] = temp5[k];            
  303.                     }
  304.  
  305.                     int templ1[3];
  306.                     int templ3[3];
  307.                     int tempc1[3];
  308.                     int tempc3[3];
  309.  
  310.                     int indicec1[3] = {0, 3, 6};
  311.                     int indicec3[3] = {2, 5, 8};
  312.  
  313.                     for(int i = 0 ; i < 3; i++){
  314.                         templ1[i] = cubo[4][i];
  315.                         templ3[i] = cubo[4][i+6];
  316.                         tempc1[i] = cubo[4][indicec1[i]];
  317.                         tempc3[i] = cubo[4][indicec3[i]];
  318.  
  319.                         cubo[4][indicec1[i]] = templ1[2-i]; //primeiro item da coluna 1 era o ultimo item da linha 1
  320.                         cubo[4][indicec3[i]] = templ3[2-i]; //primeiro item da coluna 3 era o ultimo item da linha 3
  321.                         cubo[4][i] = tempc3[i];             //primeiro item da linha 1 era o primeiro item da coluna 3
  322.                         cubo[4][i+6] = tempc1[i];           //primeiro item da linha 3 era o primeiro item da coluna 1
  323.                     }
  324.                 //oitavo latão
  325.                 /*eu n posso ter tudo toda hr tbm né cmpça
  326.                 eu tenho q parar de sofrer por gete q n liga pra mim e aproveitar o bem bom com quem me quer perto
  327.                 quem sabe se eu voltar a pensar mais em carros japoneses ao inves de gente q n me quer a minha vida
  328.                 começe a andar p frente dnv*/
  329.             }
  330.         }
  331.     }
  332.  
  333.     for(int i = 0 ; i < 6 ; i++){
  334.         for(int j = 0 ; j < 9 ; j++){
  335.            
  336.             if(j == 2 || j == 5 || j == 8){
  337.                 printf("%d \n", cubo[i][j]);
  338.             }
  339.  
  340.             else printf("%d ", cubo[i][j]);
  341.         }
  342.  
  343.         printf("\n");
  344.     }
  345.    return 0 ;
  346.  
  347. }
Add Comment
Please, Sign In to add comment