zx,ak与骰子

Description

zx和ak得到了两个骰子,但是骰子的6个面上什么东西都没有,现在zx,ak要玩一个游戏,分别给两个骰子刻字母,每个骰子的上,下,左,右,前,后 分别标记a,b,c,d,e,f 6个字母之一,可以重复,现在如果可以对其中一个骰子通过至多一次操作后使得两个骰子变得完全相同,那么zx赢,否则ak赢。每次操作包括 前倒 或 后倒 或 左倒 或 右倒中的一种情况,完全相同就是指每个对应面上字母全都相同,现在ak,和zx已经在骰子上写好了字,现在由你来写个程序判断一下谁赢。

Input

文件输入包括多组样例,输入到文件结束。每组样例包括两行,第一行是6个字母代表第一个骰子的上,下,左,右,前,后面上的字母。第二行是6个字母代表第二个骰子的上,下,左,右,前,后面上的字母。

Output

每个样例输出包含一行,如果ak赢输出ak,否则输出zx

Sample Input 1 

abacab
caabab
bfbdeb
ecfeab

Sample Output 1

zx
ak

首先要读懂题意啊.....前倒:往前倒,原前面-->下面、原后面-->上面、原上面-->前面、原下面-->后面;

后倒、左倒、右倒同理。

开一个二维数组p表示需要枚举的方向,有五种(包含不变化的情况)(可顺可逆)

代码:

import java.util.Arrays;
import java.util.Scanner;
public class zxak与骰子 {
    static char a[]=new char[10];
    static char b[]=new char[10];
    static char c[]=new char[10];
    static int p[][]={{1,2,3,4,5,6},{5,6,3,4,2,1},{3,4,2,1,5,6},{6,5,3,4,1,2},{4,3,1,2,5,6}};//五个方向,顺时针
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       Scanner scan=new Scanner(System.in);
       while(scan.hasNext()){
    	   String s1=scan.next();
    	   String s2=scan.next();
    	   for(int i=0;i<6;i++){
    		   a[i]=s1.charAt(i);
    		   b[i]=s2.charAt(i);
    	   }
    	   int i;
    	   for(i=0;i<5;i++){ //依次枚举五个方向
    		   for(int j=0;j<6;j++){
    			   c[j]=a[p[i][j]-1]; //将枚举结果暂存数组c
    		   }
    		   int flag=0;
    		   for(int j=0;j<6;j++){
    			   if(c[j]!=b[j]){  //判断是否相等
    				   flag=1;break;
    			   }
    		   }
    		   if(flag==0){System.out.println("zx");break;}
    	   }
    	   if(i==5)System.out.println("ak");
       }
	} 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值