From 63bd460585d7d2c9bd83f49e658e2976a6cbbe43 Mon Sep 17 00:00:00 2001 From: Sam V <36198345+ventocis@users.noreply.github.com> Date: Sat, 20 Oct 2018 15:17:37 -0400 Subject: [PATCH] ca --- .classpath | 2 +- bin/.gitignore | 1 + bin/com/atomicobject/othello/LegalMoves.class | Bin 2001 -> 2195 bytes src/com/atomicobject/othello/AI.java | 4 +- src/com/atomicobject/othello/LegalMoves.java | 59 +++++++++++++----- 5 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 bin/.gitignore diff --git a/.classpath b/.classpath index 32076c1..0dd7f95 100644 --- a/.classpath +++ b/.classpath @@ -2,6 +2,6 @@ - + diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..c2d9872 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/com/ diff --git a/bin/com/atomicobject/othello/LegalMoves.class b/bin/com/atomicobject/othello/LegalMoves.class index d65410947546989e08b88715293eaa7d4fdd8e79..3b67c5094a80316ee259195cee5bd6aefea1e823 100644 GIT binary patch delta 882 zcmYk4OGs2<6vuzxeSGt9N@w)588Ryp1xqutDH`9JX*p*06nc^qNoF$ihH#O)phb6; z1lnpg5fw2(L5qT*HW9dK+p1;T!nAX5g>mmaoOAB~f6n>7^Z#7x#iJjWUcCWYIQA@h z(<%>>QP|ns?kKxxixH;X`(!06{jf7e7u^bdc4{g&Ii{%co>~>D?yKVyW4U}LOs_(1 z@R5B!a<8ZC7CjJSAN##AyGCa@5Ms!?XD1tmX;*}%^5c_NCMJcIm+zb+awT_ZDtq}_ zZsb3|$9rpET@}V5LX0RClz6>PHWHWN5`OH>I=R$Z`CCN^>oII#4V&0Vjo4Z*>E4KJ z7SE@y|}cY2k&Z`wK}EyAFht+Z26bynIfsAQFK&ZPA^Wwy`A~g?K+H7>Q2{qQgAT`hT0t?2m=1CY=Y-~m^&xDo>+%e89r9mzdB=Ua~&ODM( z1>5q%eo3p*MLH7GJw^8T$LlE4Uu4jEyh4tzkW+KZsTo%p*L}3~ZN^c?5$B8j zSTtm_R_uMbc4$S@ChKaK6?KrLQ&!Q%HoE1~dnD==yN5n`4zrhI^fR4ffD0m)iwts| zEVmfqHV3%NF!wmfLq?e65Kn~ijHA2|+B=T(o>4wJQKwWzS(*RFGe1aLKc%bUh`=n4{sv!So381b>OcVcr zo0v#g;DWG_7&N9DO-$Un^B*zBr4sSZj!6u8yXYu8F1VYF|^a&VotVn~cY!uI=inbTTHd znewBNby{DMd{5Iv^exSA=s3__;6kiGzYqM3zs5>2Ppkri1xEB%-d57vFZ!pZOt8AU znm5Wd=GpE{UMp7%xE0uvp#$=JXl9?>E!eb*R&C;I=PVu6(<#60Vt{TQ(LiHraM diff --git a/src/com/atomicobject/othello/AI.java b/src/com/atomicobject/othello/AI.java index c419893..d8f2a7a 100644 --- a/src/com/atomicobject/othello/AI.java +++ b/src/com/atomicobject/othello/AI.java @@ -37,8 +37,8 @@ public int[] computeMove(GameState state) { // for (int c = 1; c < 8; c++) { if (check.isLegal(state.getBoard(), r, c)) { - move[0] = 7; - move[1] = 7; + move[0] = r; + move[1] = c; System.out.println(" HIIIII" + r + " " + c); return move; } diff --git a/src/com/atomicobject/othello/LegalMoves.java b/src/com/atomicobject/othello/LegalMoves.java index 33a1c55..c640c44 100644 --- a/src/com/atomicobject/othello/LegalMoves.java +++ b/src/com/atomicobject/othello/LegalMoves.java @@ -3,10 +3,11 @@ public class LegalMoves { int player; int opponent; - //GameState gameState = new GameState(); + + // GameState gameState = new GameState(); public LegalMoves(GameState game) { - player = game.getPlayer(); - opponent = getOpponent(); + player = game.getPlayer(); + opponent = getOpponent(); } /** @@ -31,9 +32,9 @@ else if (!isEmpty(move, moveR, moveC)) return false; // check if it captures a piece - else if(!flipsPiece(move, moveR, moveC)) + else if (!flipsPiece(move, moveR, moveC)) return false; - + return true; } @@ -46,7 +47,7 @@ public boolean onBoard(int moveR, int moveC) { // check if there is already a piece on that spot of the board public boolean isEmpty(int[][] move, int moveR, int moveC) { - if (onBoard(moveR, moveC) ) { + if (onBoard(moveR, moveC)) { if (move[moveR][moveC] != 0) return false; return true; @@ -57,17 +58,47 @@ public boolean isEmpty(int[][] move, int moveR, int moveC) { // check to make sure that the move flips an opponent's piece public boolean flipsPiece(int[][] move, int moveR, int moveC) { for (int r = -1; r < 2; r++) - for (int c = -1; c < 2; c++) - if (onBoard(moveR + r, moveC + c)) - if (move[r + moveR][c + moveC] == opponent) { - int mult = 2; - while (onBoard(moveR + mult*r, moveC + mult*c)) { - if (move[moveR + mult * r][moveC + mult * c] == player) { - return true; + for (int c = -1; c < 2; c++) { + int tempMoveR = moveR + r; + int tempMoveC = moveC + c; + if (onBoard(tempMoveR, tempMoveC)) + if (move[tempMoveR][tempMoveC] == opponent) { + while (onBoard(tempMoveR, tempMoveC) && move[tempMoveR][tempMoveC] == opponent) { + if (r == -1 && c == -1) { + tempMoveR--; + tempMoveC--; + } else if (r == 0 && c == -1) { + tempMoveC--; + } else if (r == 0 && c == 1) { + tempMoveC++; + } + + else if (r == 1 && c == -1) { + tempMoveR++; + tempMoveC--; + } else if (r == -1 && c == 0) { + tempMoveR--; + } else if (r == 1 && c == 0) { + tempMoveR++; + } else if (r == -1 && c == 1) { + tempMoveR--; + ; + tempMoveC++; + } else if (r == 1 && c == 1) { + tempMoveR++; + tempMoveC++; } - mult++; + + if (onBoard(tempMoveR, tempMoveC)) + if (move[tempMoveR][tempMoveC] == player) { + System.out.println("Me:" + tempMoveR + " " + tempMoveC); + return true; + } } + } + } + return false; }