アットウィキロゴ

おおお7999

package sh;
 
 
 
public class pro {
 
  String[] koma=new String[7];
  int[] pos=new int[7];
  String[] hand=new String[7];  
  int[][] ban=new int[10][2];
  String mode;
 
String[][] dic=new String[7][50000];
int[] number_dic=new int[10];
 
String[] hash_chx=new String[101];
int number;
 
String[][] link_a=new String[7][50000];
String[][] link_b=new String[7][50000];
int[] number_link=new int[7];
 
int[][] point=new int[7][65000];
int[][] pointx=new int[7][65000];
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
 
        int s;
 
     mode="先手";
 
        koma[1]="王";
        koma[2]="金";
        koma[3]="銀";
        koma[4]="王";
        koma[5]="金";
        koma[6]="銀";
 
        pos[1]=2;
        pos[2]=1;
        pos[3]=3;
        pos[4]=8;
        pos[5]=7;
        pos[6]=9;
 
        hand[1]="先手";
        hand[2]="先手";
        hand[3]="先手";
        hand[4]="後手";
        hand[5]="後手";
        hand[6]="後手";
 
        int x1,y1;
        int n=0;
        for (y1=1;y1<4;y1++){
        for (x1=1;x1<4;x1++){
        n=n+1;
        ban[n][0]=x1;
        ban[n][1]=y1;        
        }}
 
String hhh=hash();
 
 
   dic[1][1]=hhh;
       number_dic[1]=1;
 
       int tr,re;
       for(tr=1;tr<6;tr++){
       int n1=0;
           for(re=1;re<number_dic[tr]+1;re++){
 
           decode(dic[tr][re]);
 
 
  int ch=0;
  if(mode.equals("先手"))ch=100;
  if(mode.equals("後手"))ch=100; 
 
 
     game sub=new game();
       sub.ban=ban;
       sub.koma=koma;
       sub.makedata(dic[tr][re]);
       number=sub.number;
       hash_chx=sub.hash_chx;
 
  for(s=1;s<number+1;s++){
      n1=n1+1;
      link_a[tr][n1]=dic[tr][re]; 
      link_b[tr][n1]=hash_chx[s];    
       }
 
       }
        number_link[tr]=n1;
      int sx; 
       for(s=1;s<number_link[tr]+1;s++){ 
 
       int h=0;
       for(sx=1;sx<number_dic[tr+1]+1;sx++){
       if(link_b[tr][s].equals(dic[tr+1][sx]))h=100;
       }
       if (h<50)number_dic[tr+1]=number_dic[tr+1]+1;
        if (h<50)dic[tr+1][number_dic[tr+1]]=link_b[tr][s];
       }
 
       }
 
       for(s=1;s<number_dic[6]+1;s++){
       decode(dic[6][s]);
       makepoint(mode,6,s);
       }
 
       int t;
       for(t=1;t<6;t++){
       point sub2=new point();
       sub2.dic=dic;
       sub2.number_dic=number_dic;
       sub2.link_a=link_a;
       sub2.link_b=link_b;
       sub2.number_link=number_link;
       sub2.point=point;
       sub2.pointx=pointx;
       sub2.makedata(6-t);
       point=sub2.point;
       pointx=sub2.pointx;
       }
 
       System.out.println(point[1][1]);
       System.out.println(pointx[1][1]);
 
 
 
    }
 
 
 
 
 
     void makepoint(String mode,int t,int s){
 
       point[t][s]=50;
       pointx[t][s]=50;
       if(mode.equals("後手勝利"))pointx[t][s]=100;
       if(mode.equals("後手勝利"))point[t][s]=0; 
 
    }
 
 
    String hash(){
 
       String ha="";
       if (mode.equals("先手"))ha=ha+"w";
       if (mode.equals("後手"))ha=ha+"x";
       if (mode.equals("先手勝利"))ha=ha+"y";
       if (mode.equals("後手勝利"))ha=ha+"z";
 
       int s;
       for(s=1;s<7;s++){
       if(hand[s].equals("先手"))ha=ha+"p";    
       if(hand[s].equals("後手"))ha=ha+"q"; 
       }
 
       String w1="a,b,c,d,e,f,g,h,i,j";
       String[] ww=w1.split(",");
 
       for(s=1;s<7;s++){
       int sx=pos[s];    
       ha=ha+ww[sx];
       }
 
 
        return ha; 
}
 
void decode(String hxp){
 
    String m1=hxp.substring(0,1);
    String[] h1=new String[7];
    String[] p1=new String[7];
    int s;
    for(s=1;s<7;s++){
    h1[s]=hxp.substring(s,s+1);
    }
    for(s=1;s<7;s++){
    p1[s]=hxp.substring(s+6,s+7);
    }
 
    if(m1.equals("w"))mode="先手";
    if(m1.equals("x"))mode="後手";  
    if(m1.equals("y"))mode="先手勝利";
    if(m1.equals("z"))mode="後手勝利";  
 
 
    for(s=1;s<7;s++){
    if(h1[s].equals("p"))hand[s]="先手";
    if(h1[s].equals("q"))hand[s]="後手";       
    }
 
 
    for(s=1;s<7;s++){
    if(p1[s].equals("a"))pos[s]=0;
    if(p1[s].equals("b"))pos[s]=1;       
    if(p1[s].equals("c"))pos[s]=2;
    if(p1[s].equals("d"))pos[s]=3; 
    if(p1[s].equals("e"))pos[s]=4;
    if(p1[s].equals("f"))pos[s]=5; 
    if(p1[s].equals("g"))pos[s]=6;
    if(p1[s].equals("h"))pos[s]=7; 
    if(p1[s].equals("i"))pos[s]=8;
    if(p1[s].equals("j"))pos[s]=9; 
    }
 
 
 
}
 
 
}
 
最終更新:2018年03月03日 10:38