package useful;
import java.util.HashMap;
import java.util.LinkedList;
import rating.PrimitivKI;
import rating.PrimitivRating;
import util.ChessfigureConstants;
import components.*;
import game.Move;
import gameTree.NextMove;
import useful.TextChessField;
public class TestingNextMove {
/**
* @param args
*/
public static void main(String[] args)
{
final String PATH = "ki.ser";
LinkedList<SituationWithRating> li = new LinkedList<SituationWithRating>();
LinkedList<HashMap<Integer,Byte>> moveListWhite = new LinkedList<HashMap<Integer,Byte>>();
PrimitivKI ki = new PrimitivKI();
ki.deserialize(PATH);
MoveGenerator move = new MoveGenerator();
Field field = new Field(true);
field = Field.getInstance();
moveListWhite = move.generateMoves(field.getCurrentFieldAsHashMapWithBytes(), ChessfigureConstants.WHITE);
for(HashMap<Integer,Byte> map:moveListWhite) {
System.out.println("------------------------------------------");
System.out.println(TextChessField.fieldToString(map));
ki.teachSituation(map, 3, ChessfigureConstants.BLACK);
ki.serialize(PATH);
}
/*
// TODO Auto-generated method stub
PrimitivKI ki = new PrimitivKI();
// ki.deserialize("/Users/Schubi/ki.ser");
NextMove moveTo = new NextMove();
Field field = new Field(true);
field = Field.getInstance();
field.moveFigure(13, 29);
// field.moveFigure(63, 46);
// field.moveFigure(11, 27);
System.out.println(TextChessField.fieldToString(field.getCurrentFieldAsHashMapWithBytes()));
String fp = Fingerprint.getFingerprint(field.getCurrentFieldAsHashMapWithBytes());
// field.moveFigure(53, 45);
field.moveFigure(51, 35);
li.add(new SituationWithRating(field.getCurrentFieldAsHashMapWithBytes(), 100, 100));
// ki.setSituation(fp, li, 10);
// ki.serialize("/Users/Schubi/ki.ser");
PrimitivRating prim = new PrimitivRating();
float rating = prim.primFigureRate(field.getCurrentFieldAsHashMapWithBytes(), ChessfigureConstants.WHITE, 3,false);
System.out.println("Bewertung "+rating);
System.out.println(TextChessField.fieldToString(field.getCurrentFieldAsHashMapWithBytes()));
// int pos = ki.isRated(field.getCurrentFieldAsHashMapWithBytes());
// System.out.println(pos);
// System.out.println(prim.primRate(field.getCurrentFieldAsHashMapWithBytes()));
// System.out.println(TextChessField.fieldToString(field.getCurrentFieldAsHashMapWithBytes()));
// Move move = moveTo.getNext(field, ChessfigureConstants.BLACK);
// System.out.println("Move-Objekt: "+move.getFieldFrom()+" "+move.getFieldTo()+" "+move.getPlayerColor());
*/
}
private static Field createStartField(Field field)
{
field = SimpleFieldCreate.setField(field, "b", 9, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 10, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 11, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 12, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 13, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 14, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 15, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 16, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "t", 1, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "t", 8, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "s", 2, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "s", 7, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "l", 3, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "l", 6, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "d", 4, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "k", 5, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 49, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 50, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 51, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 52, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 53, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 54, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 55, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 56, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "t", 57, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "t", 64, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "s", 58, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "s", 63, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "l", 59, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "l", 62, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "d", 60, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "k", 61, (byte) 1, false);
return field;
}
private static Field createStartFieldOneTurn(Field field)
{
field = SimpleFieldCreate.setField(field, "b", 9, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 10, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 11, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 28, (byte) 0, true);
field = SimpleFieldCreate.setField(field, "b", 13, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 14, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 15, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 16, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "t", 1, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "t", 8, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "s", 2, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "s", 7, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "l", 3, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "l", 6, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "d", 4, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "k", 5, (byte) 0, false);
field = SimpleFieldCreate.setField(field, "b", 49, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 50, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 51, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 52, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 53, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 54, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 55, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "b", 56, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "t", 57, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "t", 64, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "s", 58, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "s", 63, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "l", 59, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "l", 62, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "d", 60, (byte) 1, false);
field = SimpleFieldCreate.setField(field, "k", 61, (byte) 1, false);
return field;
}
/*
* private static Field create5(Field field) { field =
* SimpleFieldCreate.setField(field, "k", 63, (byte) 0); field =
* SimpleFieldCreate.setField(field, "t", 52, (byte) 1); field =
* SimpleFieldCreate.setField(field, "t", 51, (byte) 1); field =
* SimpleFieldCreate.setField(field, "k", 1, (byte) 1); return field; }
*
*
* // Matt in einem Zug
*
* private static Field create4(Field field) { field =
* SimpleFieldCreate.setField(field, "t", 3, (byte) 1); field =
* SimpleFieldCreate.setField(field, "t", 8, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 9, (byte) 1); field =
* SimpleFieldCreate.setField(field, "l", 13, (byte) 1); field =
* SimpleFieldCreate.setField(field, "k", 15, (byte) 1); field =
* SimpleFieldCreate.setField(field, "d", 16, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 18, (byte) 1); field =
* SimpleFieldCreate.setField(field, "s", 19, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 22, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 27, (byte) 1); field =
* SimpleFieldCreate.setField(field, "s", 28, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 29, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 31, (byte) 1);
*
* field = SimpleFieldCreate.setField(field, "l", 39, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 41, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 42, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 44, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 45, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 54, (byte) 0); field =
* SimpleFieldCreate.setField(field, "s", 52, (byte) 0); field =
* SimpleFieldCreate.setField(field, "l", 50, (byte) 0); field =
* SimpleFieldCreate.setField(field, "d", 58, (byte) 0); field =
* SimpleFieldCreate.setField(field, "t", 59, (byte) 0); field =
* SimpleFieldCreate.setField(field, "t", 61, (byte) 0); field =
* SimpleFieldCreate.setField(field, "s", 62, (byte) 0); field =
* SimpleFieldCreate.setField(field, "k", 63, (byte) 0); return field; }
*
* private static Field create1(Field field) { field =
* SimpleFieldCreate.setField(field, "t", 6, (byte) 0); field =
* SimpleFieldCreate.setField(field, "k", 7, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 14, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 16, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 19, (byte) 0); field =
* SimpleFieldCreate.setField(field, "b", 23, (byte) 0); field =
* SimpleFieldCreate.setField(field, "l", 24, (byte) 0); field =
* SimpleFieldCreate.setField(field, "d", 43, (byte) 0); field =
* SimpleFieldCreate.setField(field, "t", 33, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 49, (byte) 1); field =
* SimpleFieldCreate.setField(field, "k", 53, (byte) 1); field =
* SimpleFieldCreate.setField(field, "t", 61, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 54, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 47, (byte) 1); field =
* SimpleFieldCreate.setField(field, "b", 56, (byte) 1); field =
* SimpleFieldCreate.setField(field, "d", 12, (byte) 1); return field; }
*
* private static Field create3(Field field) { FigureKing fk2 = new
* FigureKing(ChessfigureConstants.BLACK); field.putFigureAt(59, fk2);
*
* FigureRook fr1 = new FigureRook(ChessfigureConstants.BLACK);
* field.putFigureAt(64, fr1);
*
* FigureRook fr2 = new FigureRook(ChessfigureConstants.WHITE);
* field.putFigureAt(49, fr2);
*
* FigureBishop fb1 = new FigureBishop(ChessfigureConstants.BLACK);
* field.putFigureAt(50, fb1);
*
* FigureRook fr3 = new FigureRook(ChessfigureConstants.BLACK);
* field.putFigureAt(52, fr3);
*
* FigurePawn fp1 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(56, fp1);
*
* FigurePawn fp2 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(46, fp2);
*
* FigurePawn fp3 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(39, fp3);
*
* FigurePawn fp4 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(36, fp4);
*
* FigureKnight fk1 = new FigureKnight(ChessfigureConstants.BLACK);
* field.putFigureAt(27, fk1);
*
* FigureBishop fb2 = new FigureBishop(ChessfigureConstants.WHITE);
* field.putFigureAt(23, fb2);
*
* FigurePawn fp7 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(14, fp7);
*
* FigurePawn fp5 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(15, fp5);
*
* FigurePawn fp6 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(16, fp6);
*
* FigureKing fk3 = new FigureKing(ChessfigureConstants.WHITE);
* field.putFigureAt(7, fk3);
*
* FigureRook fr4 = new FigureRook(ChessfigureConstants.WHITE);
* field.putFigureAt(2, fr4); return field; }
*
* private static Field create2(Field field) { FigurePawn fp3 = new
* FigurePawn(ChessfigureConstants.BLACK); field.putFigureAt(36, fp3);
*
* FigurePawn fp12 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(38, fp12);
*
* FigureKnight fk1 = new FigureKnight(ChessfigureConstants.WHITE);
* field.putFigureAt(37, fk1);
*
* FigurePawn fp11 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(39, fp11);
*
* FigurePawn fp13 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(40, fp13);
*
* FigureBishop fb1 = new FigureBishop(ChessfigureConstants.BLACK);
* field.putFigureAt(44, fb1);
*
* FigureBishop fb3 = new FigureBishop(ChessfigureConstants.BLACK);
* field.putFigureAt(50, fb3);
*
* FigurePawn fp14 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(49, fp14); FigurePawn fp15 = new
* FigurePawn(ChessfigureConstants.BLACK); field.putFigureAt(54, fp15);
* FigurePawn fp16 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(55, fp16); FigurePawn fp17 = new
* FigurePawn(ChessfigureConstants.BLACK); field.putFigureAt(56, fp17);
*
* FigureKing fk2 = new FigureKing(ChessfigureConstants.BLACK);
* field.putFigureAt(63, fk2);
*
* FigureQueen fq1 = new FigureQueen(ChessfigureConstants.WHITE);
* field.putFigureAt(21, fq1);
*
* FigurePawn fp7 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(28, fp7);
*
* FigurePawn fp6 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(30, fp6);
*
* FigurePawn fp1 = new FigurePawn(ChessfigureConstants.BLACK);
* field.putFigureAt(26, fp1);
*
* FigurePawn fp5 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(18, fp5);
*
* FigurePawn fp2 = new FigurePawn(ChessfigureConstants.WHITE);
* field.putFigureAt(20, fp2);
*
* FigureKing fk3 = new FigureKing(ChessfigureConstants.WHITE);
* field.putFigureAt(16, fk3);
*
* FigureQueen fq3 = new FigureQueen(ChessfigureConstants.BLACK);
* field.putFigureAt(9, fq3);
*
* FigureBishop fb2 = new FigureBishop(ChessfigureConstants.WHITE);
* field.putFigureAt(15, fb2); return field; }
*/
}