package jump;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class pro {
String mode;
String[] koma=new String[7];
int[] pos=new int[7];
String[] hand=new String[7];
int[][] ban=new int[10][2];
String[] grow=new String[7];
List<String> link_a = new ArrayList<String>();
List<String> link_b = new ArrayList<String>();
List<String> dic = new ArrayList<String>();
int number;
String[] hash_chx=new String[500];
List<String> link_plus = new ArrayList<String>();
List<String> point = new ArrayList<String>();
public static void main(String[] args) {
pro test=new pro();
}
pro(){
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]="後手";
grow[1]="不成";
grow[2]="不成";
grow[3]="不成";
grow[4]="不成";
grow[5]="不成";
grow[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();
System.out.println(hhh);
game sub=new game();
sub.ban=ban;
sub.koma=koma;
sub.makedata(hhh);
number=sub.number;
hash_chx=sub.hash_chx;
System.out.println(number);
int s,sx;
for(s=1;s<number+1;s++){
link_a.add(hhh);
link_b.add(hash_chx[s]);
}
int t;
for(t=1;t<6;t++){
link_plus.clear();
for(s=0;s<link_b.size();s++){
int h=0;
if(link_a.contains(link_b.get(s)))h=100;
if(link_plus.contains(link_b.get(s)))h=100;
if(h<50)link_plus.add(link_b.get(s));
}
int tr;
for(tr=0;tr<link_plus.size();tr++){
game sub2=new game();
sub2.ban=ban;
sub2.koma=koma;
sub2.makedata(link_plus.get(tr));
number=sub2.number;
hash_chx=sub2.hash_chx;
for(s=1;s<number+1;s++){
link_a.add(link_plus.get(tr));
link_b.add(hash_chx[s]);
}
}
}
check sub3=new check();
sub3.link_a=link_a;
sub3.link_b=link_b;
sub3.makedata();
point=sub3.point;
dic=sub3.dic;
System.out.println(point.get(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];
}
for(s=1;s<7;s++){
if(grow[s].equals("不成"))ha=ha+"k";
if(grow[s].equals("成"))ha=ha+"l";
}
return ha;
}
void writexml(String file){
int s,sx;
try{
PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file)));
for(s=0;s<link_a.size();s++){
pw.print(link_a.get(s));
pw.print(",");
pw.println(link_b.get(s));
}
System.out.println("ファイルに書きこみました。");
pw.close();
} catch(IOException ep){ System.out.println("入出力エラーです。"); }
}
}
最終更新:2018年04月16日 09:15