Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- public class Main {
- static char[] kub1 = new char[]{'g','w','b','b','r','g'};
- static char[] kub2 = new char[]{'r','r','w','g','b','r'};
- static char[] kub3 = new char[]{'w','g','r','w','g','b'};
- static char[] kub4 = new char[]{'b','b','g','r','w','w'};
- static byte counter2 = 1;
- static byte counter3 = 1;
- static byte counter4 = 1;
- static void fourkub(char[] kub3,char[] kub4,byte counter3, byte counter4) {
- byte i = 1;
- char temp;
- boolean flag = false;
- boolean flag2 = false;
- while (!flag & counter4 < 6){
- while (!flag2 & i < 5 ){
- if (kub4[i] != kub1[i] && kub4[i] != kub2[i] && kub4[i] != kub3[i]){
- i++;
- } else {
- flag2 = true;
- }
- }
- if (flag2){
- temp = kub4[0];
- for (i = 0; i < 5;i++){
- kub4[i] = kub4[i + 1];
- }
- kub4[5] = temp;
- counter4++;
- flag2 = false;
- i = 1;
- } else {
- flag = true;
- }
- }
- if (!flag){
- temp = kub3[0];
- for (i = 0; i < 5;i++){
- kub3[i] = kub3[i + 1];
- }
- kub3[5] = temp;
- counter4 = 1;
- threekub(kub2,kub3,counter2,counter3);
- }
- }
- static void threekub(char[] kub2,char[] kub3,byte counter2,byte counter3) {
- byte i = 1;
- char temp;
- boolean flag = false;
- boolean flag2 = false;
- while (!flag & counter3 < 6){
- while (!flag2 & i < 5 ){
- if (kub1[i] != kub3[i] && kub2[i] != kub3[i]){
- i++;
- } else {
- flag2 = true;
- }
- }
- if (flag2){
- temp = kub3[0];
- for (i = 0; i < 5;i++){
- kub3[i] = kub3[i + 1];
- }
- kub3[5] = temp;
- counter3++;
- flag2 = false;
- i = 1;
- } else {
- flag = true;
- }
- }
- if (flag){
- fourkub(kub3,kub4,counter3,counter4);
- } else {
- temp = kub2[0];
- for (i = 0; i < 5;i++){
- kub2[i] = kub2[i + 1];
- }
- kub2[5] = temp;
- counter2 = 1;
- twokub(kub1,kub2,counter2);
- }
- }
- static void twokub(char[] kub1,char[] kub2,byte counter2) {
- byte i = 1;
- char temp;
- boolean flag = false;
- boolean flag2 = false;
- while (!flag & counter2 < 6){
- while (!flag2 & i < 5 ){
- if (kub1[i] != kub2[i]){
- i++;
- } else {
- flag2 = true;
- }
- }
- if (flag2){
- temp = kub2[0];
- for (i = 0; i < 5;i++){
- kub2[i] = kub2[i + 1];
- }
- kub2[5] = temp;
- counter2++;
- flag2 = false;
- i = 1;
- } else {
- flag = true;
- }
- }
- if (flag){
- threekub(kub2,kub3,counter2,counter3);
- } else {
- temp = kub1[0];
- for (i = 0; i < 5;i++){
- kub1[i] = kub1[i + 1];
- }
- kub1[5] = temp;
- counter2 = 1;
- twokub(kub1,kub2,counter2);
- }
- }
- public static void outputkubs(char[] kub1,char[]kub2,char[]kub3,char[] kub4){
- System.out.println("Головоломка с кубиками. Имеется 4 кубика, грани которых раскрашены в четыре цвета: белый(w), зеленый(g), синий(b), красный(r).\nНеобходимо составить из этих кубиков прямоугольную призму, каждая боковая грань которой раскрашена во все четыре цвета. Требуется найти хотя бы одно решение.");
- System.out.println("Кубики имеют вид:");
- System.out.println(" g r w r ");
- System.out.println("wbrr wgbr wggr wwbg");
- System.out.println(" g r b b ");
- System.out.println("Решение:");
- System.out.println(kub4[0]);
- System.out.println(kub4[1] + " " + kub4[2] + " " + kub4[3] + " " + kub4[4]);
- System.out.println(kub3[1] + " " + kub3[2] + " " + kub3[3] + " " + kub3[4]);
- System.out.println(kub2[1] + " " + kub2[2] + " " + kub2[3] + " " + kub2[4]);
- System.out.println(kub1[1] + " " + kub1[2] + " " + kub1[3] + " " + kub1[4]);
- System.out.println(kub1[0]);
- }
- public static void main(String[] args) {
- twokub(kub1,kub2,counter2);
- outputkubs(kub1,kub2,kub3,kub4);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement