• 【小练习】立方体旋转


    题目要求:按顺序旋转立方体,输出旋转后的结果。

    立方体的前后左右上下分别为3、4、1、2、5、6。F表示向前翻转、B表示向后翻转,L表示像左翻转,R表示向右翻转、C表示顺时针旋转、A表示逆时针旋转。

    在不做任何操作的情况下,默认打印123456。现要求输入一定规则,要求输出一定结果(如:输入RAF,输出431256)。

    源码如下:

    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    
    public class Square {
    
        public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
            String input="RAF";
    
            if(input == null || input.trim().length() ==0){
                System.out.println(-1);
                return;
            }
    
            if(!input.trim().matches("^[R|L|F|B|A|C]+$")){
                System.out.println(-1);
                return;
            }
            Square square = new Square();
            if(input.length()>0){
                for (String c : input.trim().split("")){
                    Method method = Square.class.getMethod(c,null);
                    method.invoke(square);
                }
            }
            square.print();
        }
    
    
        int front =3;
        int back =4;
        int left =1;
        int right =2;
        int up =5;
        int down =6;
    
        public void print(){
            System.out.println(String.format("%s%s%s%s%s%s", left, right, front, back, up, down));
        }
    
        //前翻
        public void F(){
            //交换前后上下四个面
            int tmp= up;
            up = back;
            back = down;
            down = front;
            front =tmp;
        }
    
        //后翻
        public void B(){
            //交换前后上下四个面
            int tmp= up;
            up = front;
            front = down;
            down = back;
            back =tmp;
        }
    
        //左翻
        public void L(){
            //交换上下左右四个面
            int tmp= up;
            up = right;
            right = down;
            down = left;
            left =tmp;
        }
    
    
        //右翻
        public void R(){
            //交换上下左右四个面
            int tmp= up;
            up = left;
            left = down;
            down = right;
            right =tmp;
        }
    
        //顺时针
        public void C(){
            //交换前后左右四个面
            int tmp= front;
            front = right;
            right = back;
            back = left;
            left =tmp;
        }
    
        //逆时针
        public void A(){
            //交换前后左右四个面
            int tmp= front;
            front = left;
            left = back;
            back = right;
            right =tmp;
        }
    }
  • 相关阅读:
    源代码搭建应用(一)——动手搭建自己的计算集群系统
    [转载]Ubuntu 14.04中root 密码忘记解决方法
    如何用路由器改成WiFi Pineapple系统镜像网络流量
    DELPHI黑客编程(一):正向后门原理实现
    OpenWrt 路由器过滤广告的N种方法
    Windows 10 上强制Visual Studio以管理员身份运行
    DB2修改表字段
    Git Fast-forward提交
    C#(去、过滤)掉字符中的换行符
    VS读取文件或写入文件时出现中文乱码问题
  • 原文地址:https://www.cnblogs.com/aligege/p/12327250.html
Copyright © 2020-2023  润新知