package com.rahul.trainer;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import com.rahul.bitboard.BitBoard;
import com.rahul.numboard.NumBoard;
public class PrepareData {
private static ArrayList<com.rahul.bitboard.RowData> bitBoardData;
private static ArrayList<com.rahul.numboard.RowData> numBoardData;
@SuppressWarnings("unchecked")
private static void readBitBoardData(String path) {
ObjectInputStream ois;
try {
ois = new ObjectInputStream(new FileInputStream(path));
bitBoardData = (ArrayList<com.rahul.bitboard.RowData>) ois
.readObject();
ois.close();
} catch (Exception e) {
}
}
@SuppressWarnings("unchecked")
private static void readNumBoardData(String path) {
ObjectInputStream ois;
try {
ois = new ObjectInputStream(new FileInputStream(path));
numBoardData = (ArrayList<com.rahul.numboard.RowData>) ois
.readObject();
ois.close();
} catch (Exception e) {
}
}
public static double[] inputToDoubleArray(String input) {
double[] row = new double[BitBoard.BOARD_LENGTH * 12];
char[] temp = input.toCharArray();
for (int i = 0; i < temp.length; i++) {
row[i] = Double.parseDouble(temp[i] + "");
}
return row;
}
public static double[] expectedOutputToDoubleArray(double expectedOutput) {
double[] evalScore = new double[1];
evalScore[0] = expectedOutput;
return evalScore;
}
public static ArrayList<com.rahul.bitboard.RowData> getBitBoardData(
String path) {
readBitBoardData(path);
return bitBoardData;
}
public static ArrayList<com.rahul.numboard.RowData> getNumBoardData(
String path) {
readNumBoardData(path);
return numBoardData;
}
public static int[][] inputToIntMatrix(String path) {
int[][] bitBoardDataSet;
char[] temp;
readBitBoardData(path);
bitBoardDataSet = new int[bitBoardData.size()][BitBoard.BOARD_LENGTH * 12];
for (int i = 0; i < bitBoardData.size(); i++) {
temp = bitBoardData.get(i).getInput().toCharArray();
for (int j = 0; j < BitBoard.BOARD_LENGTH * 12; j++) {
bitBoardDataSet[i][j] = temp[j] - 48;
}
}
return bitBoardDataSet;
}
public static int[][] doubleToIntMatrix(
ArrayList<com.rahul.numboard.RowData> data) {
int[][] numBoardDataSet;
double[] temp;
numBoardDataSet = new int[data.size()][NumBoard.BOARD_SIZE];
for (int i = 0; i < data.size(); i++) {
temp = data.get(i).getInput();
for (int j = 0; j < NumBoard.BOARD_SIZE; j++) {
numBoardDataSet[i][j] = (int) temp[j];
}
}
return numBoardDataSet;
}
public static void main(String[] args) {
readNumBoardData("./data/numboards_game4.bb");
for (com.rahul.numboard.RowData row : numBoardData)
System.out.println(row);
}
}