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;
}