Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Chess960V3.java MrG 2012.0227
- purpose: randomly find all 960 Fischer Chess Board combinations
- required files: Chess960V3.java main class
- EasyWriter.java file I/O class
- translator: javac Chess960V3.java
- interpreter: java Chess960V3
- */
- //imported classes
- import java.util.Random;
- import java.util.ArrayList;
- //main class
- public class Chess960V3
- {
- public static final int BOARD_SIZE = 8;
- public static final int EVE = 0;
- public static final int ODD = 1;
- public static void main(String[] args)
- {
- int printCount = 1;
- ArrayList<String[]> foo = new ArrayList<String[]>();
- initList(foo);
- System.out.println(printCount + "\t" +toString(foo.get(0)));
- while(printCount<960)
- {
- String[] whitePieces = new String[BOARD_SIZE];
- setBishop(whitePieces,EVE);
- setBishop(whitePieces,ODD);
- setRandom(whitePieces,"Q");
- setRandom(whitePieces,"N");
- setRandom(whitePieces,"N");
- setFirstOpen(whitePieces,"R");
- setFirstOpen(whitePieces,"K");
- setFirstOpen(whitePieces,"R");
- if(!foundB(whitePieces,foo))
- {
- System.out.println(printCount + "\t" +toString(whitePieces));
- foo.add(whitePieces);
- printCount++;
- }
- }
- fileList(foo);
- }
- public static void fileList(ArrayList<String[]> bar)
- {
- EasyWriter ross = new EasyWriter("960.txt");
- for(int j = 0; j<bar.size(); j++)
- {
- ross.println(j + "\t" + toString(bar.get(j)));
- }
- ross.close();
- }
- public static void initList(ArrayList<String[]> bar)
- {
- String[] bob = {"R","N","B","Q","K","B","N","R"};
- bar.add(bob);
- }
- public static boolean foundB(String[] wP, ArrayList<String[]> bar)
- {
- for(String[] board : bar)
- {
- if(sameB(board,wP))
- {
- return true;
- }
- }
- return false;
- }
- public static boolean sameB(String[] b1, String[] b2)
- {
- for(int i=0; i<b1.length; i++)
- {
- if(!b1[i].equals(b2[i]))
- {
- return false;
- }
- }
- return true;
- }
- public static void setFirstOpen(String[] wP, String piece)
- {
- int pos = 0;
- while(wP[pos]!=null)
- {
- pos++;
- }
- wP[pos]=piece;
- }
- public static void setRandom(String[] wP, String piece)
- {
- int pos;
- Random die = new Random();
- do
- {
- pos=die.nextInt(BOARD_SIZE);
- }
- while(wP[pos]!=null);
- wP[pos]=piece;
- }
- public static void setBishop(String[] wP, int offset)
- {
- Random die = new Random();
- wP[offset+die.nextInt(4)*2]="B";
- }
- public static String toString(String[] wP)
- {
- String temp = "";
- for(int k=0; k<wP.length; k++)
- {
- temp += wP[k];
- }
- return temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement