import java.util.Vector; public class HumanPlayer implements Player{ String description; Vector moves; int color; public HumanPlayer(String desc,int color){ description=desc; moves=new Vector(); this.color=color; } public String getDescription(){ return description; } public Vector lookForMoves(board tabla,int col){ return new Vector();} public Vector lookForMoves(board tabla){ Vector ret=new Vector(); for (int i=1;i<=8;i++) for (int j=1;j<=8;j++) if (tabla.getElementAt(i,j)==0){ int isValid=checkMove(tabla,i,j); if (isValid>0) ret.add(new move(i,j,isValid+1)); } return ret; } //functia imi intoarce cate daca mutarea este valida, //si in plus spune si ce castig avem public int checkMove(board tabla,int row,int column){ int i,j; int suma=0; for (i=-1;i<2;i++) for (j=-1;j<2;j++) if ((i==0)&&(j==0)){ //cazul asta nu exista }else suma=suma+checkDirection(tabla,row,column,i,j); if (suma==0) return -1; else return suma; } public int checkDirection(board tabla,int row,int column,int dx,int dy){ int sum=0,oposite,i,j; int col; col=this.color; oposite=3-col; i=row;j=column; if (!offLimits(i+2*dx,j+2*dy)){//daca incape cel putin una buna+una rea i+=dx;j+=dy; if (tabla.getElementAt(i,j)==oposite){//daca ma aflu langa un element opus boolean gata=false,bun=false; int ii=i,jj=j; do{ ii+=dx;jj+=dy; if (offLimits(ii,jj)) gata=true; else if (tabla.getElementAt(ii,jj)!=oposite){ gata=true; if (tabla.getElementAt(ii,jj)==col) bun=true; } }while (!gata); if (bun){ if (dx!=0) sum+=Math.abs(i-ii); else sum+=Math.abs(j-jj); } } } return sum; } public boolean offLimits(int row,int column){ return ((row<1)||(row>8)||(column<1)||(column>8)); } public boolean validateMove(board b,int color,move mutare){ return true; } public int getType(){//intoarce tipul de player return 1;//1 - human;2 - calculator } public int isLegalMove(board tabla,int row,int column){ int ret=0; Vector mutari=lookForMoves(tabla); System.out.println("Mutari posibile:"); for (int k=0;k