Advertisement
Amorf

Untitled

Mar 26th, 2021
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.05 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. public class Main {
  5.     static char[] kub1 = new char[]{'g','w','b','b','r','g'};
  6.     static char[] kub2 = new char[]{'r','r','w','g','b','r'};
  7.     static char[] kub3 = new char[]{'w','g','r','w','g','b'};
  8.     static char[] kub4 = new char[]{'b','b','g','r','w','w'};
  9.     static byte counter2 = 1;
  10.     static byte counter3 = 1;
  11.     static byte counter4 = 1;
  12.  
  13.     static void fourkub(char[] kub3,char[] kub4,byte counter3, byte counter4) {
  14.         byte i = 1;
  15.         char temp;
  16.         boolean flag = false;
  17.         boolean flag2 = false;
  18.         while (!flag & counter4 < 6){
  19.             while (!flag2 & i < 5 ){
  20.                 if (kub4[i] != kub1[i] && kub4[i] != kub2[i] && kub4[i] != kub3[i]){
  21.                     i++;
  22.                 } else {
  23.                     flag2 = true;
  24.                 }
  25.             }
  26.             if (flag2){
  27.                 temp = kub4[0];
  28.                 for (i = 0; i < 5;i++){
  29.                     kub4[i] = kub4[i + 1];
  30.                 }
  31.                 kub4[5] = temp;
  32.                 counter4++;
  33.                 flag2 = false;
  34.                 i = 1;
  35.             } else {
  36.                 flag = true;
  37.             }
  38.         }
  39.         if (!flag){
  40.             temp = kub3[0];
  41.             for (i = 0; i < 5;i++){
  42.                 kub3[i] = kub3[i + 1];
  43.             }
  44.             kub3[5] = temp;
  45.             counter4 = 1;
  46.             threekub(kub2,kub3,counter2,counter3);
  47.         }
  48.     }
  49.  
  50.     static void threekub(char[] kub2,char[] kub3,byte counter2,byte counter3) {
  51.         byte i = 1;
  52.         char temp;
  53.         boolean flag = false;
  54.         boolean flag2 = false;
  55.         while (!flag & counter3 < 6){
  56.             while (!flag2 & i < 5 ){
  57.                 if (kub1[i] != kub3[i] && kub2[i] != kub3[i]){
  58.                     i++;
  59.                 } else {
  60.                     flag2 = true;
  61.                 }
  62.             }
  63.             if (flag2){
  64.                 temp = kub3[0];
  65.                 for (i = 0; i < 5;i++){
  66.                     kub3[i] = kub3[i + 1];
  67.                 }
  68.                 kub3[5] = temp;
  69.                 counter3++;
  70.                 flag2 = false;
  71.                 i = 1;
  72.             } else {
  73.                 flag = true;
  74.             }
  75.         }
  76.         if (flag){
  77.             fourkub(kub3,kub4,counter3,counter4);
  78.         } else {
  79.             temp = kub2[0];
  80.             for (i = 0; i < 5;i++){
  81.                 kub2[i] = kub2[i + 1];
  82.             }
  83.             kub2[5] = temp;
  84.             counter2 = 1;
  85.             twokub(kub1,kub2,counter2);
  86.         }
  87.     }
  88.  
  89.     static void twokub(char[] kub1,char[] kub2,byte counter2) {
  90.         byte i = 1;
  91.         char temp;
  92.         boolean flag = false;
  93.         boolean flag2 = false;
  94.         while (!flag & counter2 < 6){
  95.             while (!flag2 & i < 5 ){
  96.                 if (kub1[i] != kub2[i]){
  97.                     i++;
  98.                 } else {
  99.                     flag2 = true;
  100.                 }
  101.             }
  102.             if (flag2){
  103.                 temp = kub2[0];
  104.                 for (i = 0; i < 5;i++){
  105.                     kub2[i] = kub2[i + 1];
  106.                 }
  107.                 kub2[5] = temp;
  108.                 counter2++;
  109.                 flag2 = false;
  110.                 i = 1;
  111.             } else {
  112.                 flag = true;
  113.             }
  114.         }
  115.         if (flag){
  116.             threekub(kub2,kub3,counter2,counter3);
  117.         } else {
  118.             temp = kub1[0];
  119.             for (i = 0; i < 5;i++){
  120.                 kub1[i] = kub1[i + 1];
  121.             }
  122.             kub1[5] = temp;
  123.             counter2 = 1;
  124.             twokub(kub1,kub2,counter2);
  125.         }
  126.     }
  127.     public static void outputkubs(char[] kub1,char[]kub2,char[]kub3,char[] kub4){
  128.         System.out.println("Головоломка с кубиками. Имеется 4 кубика, грани которых раскрашены в четыре цвета: белый(w), зеленый(g), синий(b), красный(r).\nНеобходимо составить из этих кубиков прямоугольную призму, каждая боковая грань которой раскрашена во все четыре цвета. Требуется найти хотя бы одно решение.");
  129.         System.out.println("Кубики имеют вид:");
  130.         System.out.println(" g    r    w    r  ");
  131.         System.out.println("wbrr wgbr wggr wwbg");
  132.         System.out.println(" g    r    b    b   ");
  133.         System.out.println("Решение:");
  134.         System.out.println(kub4[0]);
  135.         System.out.println(kub4[1] + " " + kub4[2] + " " + kub4[3] + " " + kub4[4]);
  136.         System.out.println(kub3[1] + " " + kub3[2] + " " + kub3[3] + " " + kub3[4]);
  137.         System.out.println(kub2[1] + " " + kub2[2] + " " + kub2[3] + " " + kub2[4]);
  138.         System.out.println(kub1[1] + " " + kub1[2] + " " + kub1[3] + " " + kub1[4]);
  139.         System.out.println(kub1[0]);
  140.     }
  141.     public static void main(String[] args) {
  142.         twokub(kub1,kub2,counter2);
  143.         outputkubs(kub1,kub2,kub3,kub4);
  144.     }
  145. }
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement