diff --git a/src/GameState1.java b/src/GameState1.java index afa4425..1f639fc 100644 --- a/src/GameState1.java +++ b/src/GameState1.java @@ -1,18 +1,20 @@ import java.util.ArrayList; import java.util.List; import java.util.Arrays; +import java.util.Random; public class GameState1 implements CheckersGameState{ public static void main(String[] args){ //testing some methods + Random r = new Random(); String[][] b3 = new String[8][8]; b3[4][2] = "B"; b3[3][1] = "w"; b3[1][1] = "w"; b3[1][3] = "w"; b3[3][3] = "w"; - GameState1 g7 = new GameState1(b3,true); + CheckersGameState g7 = new GameState1(b3,true); g7.printState(); List m6 = g7.actions(); for(Move m : m6){ @@ -25,6 +27,28 @@ public static void main(String[] args){ System.out.println(m); } g1.result(g1.actions().get(0)).printState(); + b3[5][3] = "w"; + b3[6][4] = "b"; + b3[4][2] = null; + CheckersGameState g2 = new GameState1(b3, false); + g2.printState(); + for(Move m: g2.actions()){ + System.out.println(m); + } + g2.result(g2.actions().get(0)).printState(); + System.out.println("This is initial board followed by entire game played"); + CheckersGameState state = new GameState1(); + state.printState(); + List actions = state.actions(); + while(actions.size() > 0){ + for(Move m: actions){ + System.out.println(m +" ~~ "); + } + state = state.result(actions.get(r.nextInt(actions.size()))); + state.printState(); + actions = state.actions(); + } + } diff --git a/src/testcases1.txt b/src/testcases1.txt index 30851e2..0c5beb2 100644 --- a/src/testcases1.txt +++ b/src/testcases1.txt @@ -1,141 +1,792 @@ -Checker State using 2D array implementation - -Some sample boards/actions/results showing -- A b piece moving foward -- A w piece moving foward -- A piece being captured by a regular jump foward -- A piece reaching the other side and becoming a king -- A king's available actions showing its ability to move fowards and back -- A king moving back and capturing a piece - -_________________________________________________________________ --b-b-b-b -b-b-b-b- --b-b-b-b --------- --------- -w-w-w-w- --w-w-w-w -w-w-w-w- - -Black's move - -Available Moves: -(2,1):(3,0) -(2,1):(3,2) -(2,3):(3,2) -(2,3):(3,4) -(2,5):(3,4) -(2,5):(3,6) -(2,7):(3,6) - -Test1: Move(2,1) to (3,0) result (moving black piece foward - --b-b-b-b -b-b-b-b- ----b-b-b -b------- --------- -w-w-w-w- --w-w-w-w -w-w-w-w- - -White's move -_________________________________________________________________ -Available Moves: (continuing from previous) -(5,0):(4,1) -(5,2):(4,1) -(5,2):(4,3) -(5,4):(4,3) -(5,4):(4,5) -(5,6):(4,5) -(5,6):(4,7) - -Test2: Move(5,2) to (4,1) result (moving white piece foward - --b-b-b-b -b-b-b-b- ----b-b-b -b------- --w------ -w---w-w- --w-w-w-w -w-w-w-w- - -Black's move -_________________________________________________________________ -Available Moves: (continuting from previous) -(1,0):(2,1) -(1,2):(2,1) -(2,3):(3,2) -(2,3):(3,4) -(2,5):(3,4) -(2,5):(3,6) -(2,7):(3,6) -(3,0):(5,2) - -Test3: Move(3,0) to (5,2) result (jumping and capturing a piece) - --b-b-b-b -b-b-b-b- ----b-b-b --------- --------- -w-b-w-w- --w-w-w-w -w-w-w-w- - -White's move -_________________________________________________________________ ----b-b-- -w------- --------- --------- --------- --------- --------- --------- - -White's move -(1,0):(0,1) - -Test4: Move(1,0) to (0,1) result (creating a king) - --W-b-b-- --------- --------- --------- --------- --------- --------- --------- - -White's move -_________________________________________________________________ --------- --------- --------- --b-B---- ---W----- --b-b---- --------- --------- - -White's move -(4,2):(6,0) -(4,2):(6,4) -(4,2):(2,0) -(4,2):(2,4) - -Test6: Move(4,2) to (2,0) result (king jumping backward and capturing) - --------- --------- -W------- ----B---- --------- --b-b---- --------- --------- - -White's move + +-------- +-------- +-------- +--B----- +-w-w---- +-------- +-w-w---- +-------- + +Black's move +(4:2):(2:4):(0:2):(2:0):(4:2) +(4:2):(2:0):(0:2):(2:4):(4:2) + +-------- +-------- +-------- +--B----- +-------- +-------- +-------- +-------- + +White's move + +-b-b-b-b +b-b-b-b- +-b-b-b-b +-------- +-------- +w-w-w-w- +-w-w-w-w +w-w-w-w- + +Black's move +(5:1):(4:2) +(5:1):(4:0) +(5:3):(4:4) +(5:3):(4:2) +(5:5):(4:6) +(5:5):(4:4) +(5:7):(4:6) + +-b-b-b-b +b-b-b-b- +---b-b-b +--b----- +-------- +w-w-w-w- +-w-w-w-w +w-w-w-w- + +White's move + +-------- +----b--- +---w---- +-------- +-w-w---- +-------- +-w-w---- +-------- + +White's move +(5:3):(7:5) + +-----W-- +-------- +-------- +-------- +-w-w---- +-------- +-w-w---- +-------- + +Black's move +This is initial board followed by entire game played + +-b-b-b-b +b-b-b-b- +-b-b-b-b +-------- +-------- +w-w-w-w- +-w-w-w-w +w-w-w-w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(5:3):(4:4) ~~ +(5:3):(4:2) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ +(5:7):(4:6) ~~ + +-b-b-b-b +b-b-b-b- +-b---b-b +----b--- +-------- +w-w-w-w- +-w-w-w-w +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(2:2):(3:3) ~~ +(2:2):(3:1) ~~ +(2:4):(3:5) ~~ +(2:4):(3:3) ~~ +(2:6):(3:7) ~~ +(2:6):(3:5) ~~ + +-b-b-b-b +b-b-b-b- +-b---b-b +----b--- +-----w-- +w-w---w- +-w-w-w-w +w-w-w-w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(6:2):(5:3) ~~ +(4:4):(3:3) ~~ +(6:4):(5:3) ~~ +(5:5):(4:6) ~~ +(5:7):(4:6) ~~ + +-b-b-b-b +b-b-b-b- +-b---b-b +-------- +---b-w-- +w-w---w- +-w-w-w-w +w-w-w-w- + +White's move +(2:2):(4:4) ~~ + +-b-b-b-b +b-b-b-b- +-b---b-b +----w--- +-----w-- +w-----w- +-w-w-w-w +w-w-w-w- + +Black's move +(5:5):(3:3) ~~ + +-b-b-b-b +b-b-b-b- +-b-----b +-------- +---b-w-- +w-----w- +-w-w-w-w +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(1:3):(2:4) ~~ +(1:3):(2:2) ~~ +(1:5):(2:4) ~~ +(3:5):(4:6) ~~ +(3:5):(4:4) ~~ +(2:6):(3:7) ~~ + +-b-b-b-b +b-b-b-b- +-b-----b +------w- +---b---- +w-----w- +-w-w-w-w +w-w-w-w- + +Black's move +(5:7):(3:5) ~~ + +-b-b-b-b +b-b-b-b- +-b------ +-------- +---b-b-- +w-----w- +-w-w-w-w +w-w-w-w- + +White's move +(2:6):(4:4) ~~ + +-b-b-b-b +b-b-b-b- +-b------ +----w--- +---b---- +w------- +-w-w-w-w +w-w-w-w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(6:2):(5:3) ~~ +(3:3):(2:4) ~~ +(3:3):(2:2) ~~ +(6:4):(5:5) ~~ +(6:4):(5:3) ~~ +(6:6):(5:7) ~~ +(6:6):(5:5) ~~ + +-b-b-b-b +b-b---b- +-b---b-- +----w--- +---b---- +w------- +-w-w-w-w +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(1:3):(2:4) ~~ +(1:3):(2:2) ~~ +(4:4):(5:3) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(1:7):(2:6) ~~ + +-b-b-b-b +b-b---b- +-b---b-- +----w--- +---b---- +w-----w- +-w-w---w +w-w-w-w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(6:2):(5:3) ~~ +(3:3):(2:4) ~~ +(3:3):(2:2) ~~ +(7:3):(6:4) ~~ +(5:5):(4:6) ~~ +(7:5):(6:4) ~~ +(6:6):(5:7) ~~ + +-b-b---b +b-b-b-b- +-b---b-- +----w--- +---b---- +w-----w- +-w-w---w +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(1:3):(2:4) ~~ +(1:3):(2:2) ~~ +(0:4):(1:5) ~~ +(4:4):(5:3) ~~ +(0:6):(1:5) ~~ +(2:6):(3:7) ~~ +(2:6):(3:5) ~~ + +-b-b---b +b-b-b-b- +-b-w-b-- +-------- +---b---- +w-----w- +-w-w---w +w-w-w-w- + +Black's move +(6:2):(4:4) ~~ +(6:4):(4:2) ~~ + +-b-b---b +b---b-b- +-b---b-- +----b--- +---b---- +w-----w- +-w-w---w +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(1:3):(2:4) ~~ +(1:3):(2:2) ~~ +(0:4):(1:5) ~~ +(0:6):(1:5) ~~ +(2:6):(3:7) ~~ +(2:6):(3:5) ~~ + +-b-b---b +b---b-b- +-b---b-- +----b--- +---b-w-- +w------- +-w-w---w +w-w-w-w- + +Black's move +(4:4):(2:6) ~~ + +-b-b---b +b---b-b- +-b---b-- +-------- +---b---- +w-----b- +-w-w---w +w-w-w-w- + +White's move +(1:7):(3:5) ~~ + +-b-b---b +b---b-b- +-b---b-- +-------- +---b-w-- +w------- +-w-w---- +w-w-w-w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(3:3):(2:4) ~~ +(3:3):(2:2) ~~ +(7:3):(6:2) ~~ +(6:4):(5:3) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ +(6:6):(5:7) ~~ + +-b-b---b +b---b-b- +-b---b-- +-------- +-----w-- +w---b--- +-w-w---- +w-w-w-w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(1:3):(2:2) ~~ +(0:4):(1:5) ~~ +(3:5):(4:6) ~~ +(3:5):(4:4) ~~ +(0:6):(1:7) ~~ +(0:6):(1:5) ~~ + +-b-b---b +b---b-b- +-b---b-- +-------- +-----w-- +w---b--- +-w-w-w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(7:3):(6:2) ~~ +(6:4):(5:3) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ +(6:6):(5:7) ~~ + +-b-b---b +b---b-b- +-b------ +------b- +-----w-- +w---b--- +-w-w-w-- +w-w---w- + +White's move +(1:5):(3:3) ~~ +(3:5):(5:7):(7:5) ~~ + +-b-b-W-b +b---b--- +-b------ +-------- +-------- +w---b--- +-w-w-w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(7:3):(6:2) ~~ +(6:4):(5:5) ~~ +(6:4):(5:3) ~~ +(7:7):(6:6) ~~ + +-b-b-W-b +b------- +-b---b-- +-------- +-------- +w---b--- +-w-w-w-- +w-w---w- + +White's move +(1:3):(3:5) ~~ +(1:5):(3:3) ~~ + +-b-b-W-b +b------- +-b---b-- +-------- +-----w-- +w------- +-w---w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(7:3):(6:4) ~~ +(7:3):(6:2) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ +(7:7):(6:6) ~~ + +-b-b-W-b +b------- +-b------ +----b--- +-----w-- +w------- +-w---w-- +w-w---w- + +White's move +(3:5):(5:3) ~~ + +-b-b-W-b +b------- +-b-w---- +-------- +-------- +w------- +-w---w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(7:3):(6:4) ~~ +(7:3):(6:2) ~~ +(7:7):(6:6) ~~ + +-b---W-b +b---b--- +-b-w---- +-------- +-------- +w------- +-w---w-- +w-w---w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(0:2):(1:3) ~~ +(5:3):(6:2) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(7:5):(6:6) ~~ +(0:6):(1:7) ~~ + +-b-----b +b---b-W- +-b-w---- +-------- +-------- +w------- +-w---w-- +w-w---w- + +Black's move +(6:4):(4:2) ~~ +(7:7):(5:5) ~~ + +-b------ +b---b--- +-b-w-b-- +-------- +-------- +w------- +-w---w-- +w-w---w- + +White's move +(5:3):(7:5) ~~ + +-b---W-- +b------- +-b---b-- +-------- +-------- +w------- +-w---w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(7:1):(6:2) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ + +-----W-- +b-b----- +-b---b-- +-------- +-------- +w------- +-w---w-- +w-w---w- + +White's move +(2:0):(3:1) ~~ +(1:1):(2:2) ~~ +(0:2):(1:3) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(7:5):(6:4) ~~ +(7:5):(6:6) ~~ +(0:6):(1:7) ~~ + +-----W-- +b-b----- +-b---b-- +-------- +-w------ +-------- +-w---w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(6:2):(5:3) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ + +-----W-- +b-b----- +-----b-- +--b----- +-w------ +-------- +-w---w-- +w-w---w- + +White's move +(3:1):(5:3):(7:1) ~~ + +-W---W-- +b------- +-----b-- +-------- +-------- +-------- +-w---w-- +w-w---w- + +Black's move +(6:0):(5:1) ~~ +(5:5):(4:6) ~~ +(5:5):(4:4) ~~ + +-W---W-- +b------- +-------- +------b- +-------- +-------- +-w---w-- +w-w---w- + +White's move +(1:1):(2:2) ~~ +(1:1):(2:0) ~~ +(7:1):(6:2) ~~ +(0:2):(1:3) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(7:5):(6:4) ~~ +(7:5):(6:6) ~~ +(0:6):(1:7) ~~ + +-W------ +b-----W- +-------- +------b- +-------- +-------- +-w---w-- +w-w---w- + +Black's move +(6:0):(5:1) ~~ +(4:6):(3:7) ~~ +(4:6):(3:5) ~~ + +-W------ +------W- +-b------ +------b- +-------- +-------- +-w---w-- +w-w---w- + +White's move +(1:1):(2:2) ~~ +(1:1):(2:0) ~~ +(7:1):(6:0) ~~ +(7:1):(6:2) ~~ +(0:2):(1:3) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(0:6):(1:7) ~~ +(6:6):(7:7) ~~ +(6:6):(7:5) ~~ +(6:6):(5:5) ~~ +(6:6):(5:7) ~~ + +-W-----W +-------- +-b------ +------b- +-------- +-------- +-w---w-- +w-w---w- + +Black's move +(5:1):(4:2) ~~ +(5:1):(4:0) ~~ +(4:6):(3:7) ~~ +(4:6):(3:5) ~~ + +-W-----W +-------- +-------- +b-----b- +-------- +-------- +-w---w-- +w-w---w- + +White's move +(1:1):(2:2) ~~ +(1:1):(2:0) ~~ +(7:1):(6:0) ~~ +(7:1):(6:2) ~~ +(0:2):(1:3) ~~ +(1:5):(2:6) ~~ +(1:5):(2:4) ~~ +(0:6):(1:7) ~~ +(7:7):(6:6) ~~ + +-W-----W +-------- +-------- +b-----b- +-------- +------w- +-w------ +w-w---w- + +Black's move +(4:0):(3:1) ~~ +(4:6):(3:7) ~~ +(4:6):(3:5) ~~ + +-W-----W +-------- +-------- +b------- +-----b-- +------w- +-w------ +w-w---w- + +White's move +(2:6):(4:4) ~~ + +-W-----W +-------- +-------- +b---w--- +-------- +-------- +-w------ +w-w---w- + +Black's move +(4:0):(3:1) ~~ + +-W-----W +-------- +-------- +----w--- +-b------ +-------- +-w------ +w-w---w- + +White's move +(1:1):(2:2) ~~ +(1:1):(2:0) ~~ +(7:1):(6:0) ~~ +(7:1):(6:2) ~~ +(0:2):(1:3) ~~ +(4:4):(5:5) ~~ +(4:4):(5:3) ~~ +(0:6):(1:7) ~~ +(0:6):(1:5) ~~ +(7:7):(6:6) ~~ + +-------W +--W----- +-------- +----w--- +-b------ +-------- +-w------ +w-w---w- + +Black's move +(3:1):(2:2) ~~ +(3:1):(2:0) ~~ + +-------W +--W----- +-------- +----w--- +-------- +--b----- +-w------ +w-w---w- + +White's move +(1:1):(3:3) ~~ + +-------W +--W----- +-------- +----w--- +---w---- +-------- +-------- +w-w---w- + +Black's move