Advertisement
LucasSousa

scramble square lógica pronta

Jan 21st, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.19 KB | None | 0 0
  1. package gAGAU;
  2.  
  3. import java.util.*;
  4.  
  5. public class ScSq {
  6.  
  7.     boolean cimaAlinhado = true;
  8.     boolean baixoAlinhado = true;
  9.  
  10.     boolean cimaDesalinhadoEmbaixoAlinhadoBooleano = false;
  11.     boolean cimaAlinhadoEmbaixoDesalinhadoBooleano = false;
  12.  
  13.     String[] globalMove = { "-5", "-3", "-2", "0", "1", "3", "4", "6" };
  14.  
  15.     String[] baixoEspecificoCimaDesalinhado = { "-4", "-1", "2", "5" };
  16.  
  17.     String[] baixo2 = { "-5", "-2", "1", "4" };
  18.  
  19.     String[] baixoEspecificoCimaAlinhado = { "-3", "0", "3", "6" };
  20.  
  21.     String[] cimaDesalinhado = { "-4", "-3", "-1", "0", "2", "3", "5", "6" };
  22.  
  23.     String[] alinharCima = { "-4", "-1", "2", "5" };
  24.  
  25.     String[] alinharBaixo = { "-5", "-2", "1", "4" };
  26.    
  27.     String[] cubeShapeCases = {
  28.             "(3,0)/(1,-4)/(0,2)/(4,6)/(2,1)/(-3,-1)",
  29.  
  30.             "(0,-3)/(-2,-1)/(-3,4)/(3,2)/(2,-2)",
  31.  
  32.             "(0,-3)/(-2,-1)/(-3,2)/(-1,-2)/(-4,0)",
  33.  
  34.             "(3,0)/(1,2)/(2,6)/(4,-4)/(1,2)",
  35.  
  36.             "(0,-3)/(-2,-1)/(-3,4)/(-5,2)/(1,2)",
  37.  
  38.             "(0,-3)/(-2,-1)/(-3,4)/(3,6)/(-2,3)",
  39.  
  40.             "(3,0)/(1,-4)/(0,2)/(4,6)/(-4,1)",
  41.  
  42.             "(0,-3)/(-2,-1)/(-3,4)/(6,4)/(2,0)",
  43.  
  44.             "(0,-3)/(-2,-1)/(-3,4)/(3,-4/)(4,-5)",
  45.  
  46.             "(3,0)/(1,2)/(2,0)/(-1,0)/(-2,0)",
  47.  
  48.             "(0,-3)/(-2,-1)/(-3,4)/(1,2)/(0,-4)",
  49.  
  50.             "(3,0)/(1,-4)/(0,2/)(4,6)/(2,1)",
  51.  
  52.             "(3,3)/(-1,-2)/(0,-2)/(-5,-4)/(-4,3)",
  53.  
  54.             "(3,3)/(-1,-2)/(0,-2)/(-5,-4)/(-4,3)",
  55.  
  56.             // 14°
  57.             };
  58.  
  59.     Random r = new Random();
  60.  
  61.     String scramble = "";
  62.  
  63.     public static void main(String[] argad) {
  64.  
  65.         ScSq scr = new ScSq();
  66.         scr.osDoisAlinhados();
  67.  
  68.         for (int i = 0; i < 7; i++) {
  69.             if (scr.cimaDesalinhadoEmbaixoAlinhadoBooleano == true) {
  70.                 scr.cimaDesalinhadoEmbaixoAlinhado();
  71.             } else {
  72.                 scr.cimaAlinhadoEmbaixoDesalinhado();
  73.             }
  74.             if (i == 6) {
  75.                 scr.alinharFaces();
  76.                
  77.                 scr.addShape();
  78.             }
  79.         }
  80.  
  81.         System.out.println(scr.scramble);
  82.         // return scr.scramble;
  83.     }
  84.  
  85.     public void osDoisAlinhados() {
  86.  
  87.         String movimento1 = globalMove[r.nextInt(8)];
  88.  
  89.         String movimento2 = "";
  90.  
  91.         if (movimento1.contains("-3") || movimento1.contains("0") || movimento1.contains("3")
  92.                 || movimento1.contains("6")) {
  93.  
  94.             movimento2 = baixoEspecificoCimaDesalinhado[r.nextInt(4)];
  95.  
  96.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  97.  
  98.             cimaAlinhadoEmbaixoDesalinhadoBooleano = true;
  99.             cimaDesalinhadoEmbaixoAlinhadoBooleano = false;
  100.         }
  101.  
  102.         if (movimento1.contains("-5") || movimento1.contains("-2") || movimento1.contains("1")
  103.                 || movimento1.contains("4")) {
  104.  
  105.             movimento2 = baixoEspecificoCimaAlinhado[r.nextInt(4)];
  106.  
  107.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  108.  
  109.             cimaDesalinhadoEmbaixoAlinhadoBooleano = true;
  110.             cimaAlinhadoEmbaixoDesalinhadoBooleano = false;
  111.  
  112.         }
  113.  
  114.     }
  115.  
  116.     public void cimaDesalinhadoEmbaixoAlinhado() {
  117.  
  118.         String movimento1 = cimaDesalinhado[r.nextInt(8)];
  119.  
  120.         String movimento2 = "";
  121.  
  122.         if (movimento1.contains("-4") || movimento1.contains("-1") || movimento1.contains("2")
  123.                 || movimento1.contains("5")) {
  124.  
  125.             movimento2 = baixoEspecificoCimaDesalinhado[r.nextInt(4)];
  126.  
  127.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  128.  
  129.             cimaAlinhado = true;
  130.             baixoAlinhado = false;
  131.  
  132.             cimaAlinhadoEmbaixoDesalinhadoBooleano = true;
  133.             cimaDesalinhadoEmbaixoAlinhadoBooleano = false;
  134.  
  135.         }
  136.  
  137.         if (movimento1.contains("-3") || movimento1.contains("0") || movimento1.contains("3")
  138.                 || movimento1.contains("6")) {
  139.  
  140.             do {
  141.                 movimento2 = baixoEspecificoCimaAlinhado[r.nextInt(4)];
  142.  
  143.             } while (movimento2 == "0");
  144.  
  145.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  146.  
  147.             cimaAlinhado = false;
  148.             baixoAlinhado = true;
  149.  
  150.             cimaDesalinhadoEmbaixoAlinhadoBooleano = true;
  151.             cimaAlinhadoEmbaixoDesalinhadoBooleano = false;
  152.  
  153.         }
  154.  
  155.     }
  156.  
  157.     public void cimaAlinhadoEmbaixoDesalinhado() {
  158.  
  159.         String movimento1 = globalMove[r.nextInt(8)];
  160.  
  161.         String movimento2 = "";
  162.  
  163.         if (movimento1.contains("-3") || movimento1.contains("0") || movimento1.contains("3")
  164.                 || movimento1.contains("6")) {
  165.  
  166.             do {
  167.                 movimento2 = baixoEspecificoCimaAlinhado[r.nextInt(4)];
  168.  
  169.             } while (movimento2 == "0");
  170.  
  171.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  172.  
  173.             cimaAlinhado = true;
  174.             baixoAlinhado = false;
  175.  
  176.             cimaAlinhadoEmbaixoDesalinhadoBooleano = true;
  177.             cimaDesalinhadoEmbaixoAlinhadoBooleano = false;
  178.  
  179.         }
  180.  
  181.         if (movimento1.contains("-5") || movimento1.contains("-2") || movimento1.contains("1")
  182.                 || movimento1.contains("4")) {
  183.  
  184.             movimento2 = baixo2[r.nextInt(4)];
  185.  
  186.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  187.  
  188.             cimaAlinhado = false;
  189.             baixoAlinhado = true;
  190.  
  191.             cimaDesalinhadoEmbaixoAlinhadoBooleano = true;
  192.             cimaAlinhadoEmbaixoDesalinhadoBooleano = false;
  193.  
  194.         }
  195.  
  196.     }
  197.  
  198.     public void alinharFaces() {
  199.  
  200.         if (cimaDesalinhadoEmbaixoAlinhadoBooleano == true) {
  201.  
  202.             String movimento1 = alinharCima[r.nextInt(4)];
  203.  
  204.             String movimento2 = baixoEspecificoCimaAlinhado[r.nextInt(4)];
  205.  
  206.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  207.  
  208.         } else {
  209.  
  210.             String movimento1 = globalMove[r.nextInt(8)];
  211.  
  212.             String movimento2 = baixo2[r.nextInt(4)];
  213.  
  214.             scramble += "(" + movimento1 + "," + movimento2 + ")/";
  215.  
  216.         }
  217.  
  218.     }
  219.    
  220.     public void addShape(){
  221.        
  222.         String shape = cubeShapeCases[r.nextInt(14)];
  223.        
  224.         scramble += shape;
  225.     }
  226.  
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement