[Java] 将棋アルゴリズムを作る。~コンピュータのコマを動かす~

Java

一旦完成しましたが、やっぱりコンピュータと対戦するところまで

やることにしました。

大変だと思いますが、やっていきたいと思います。

早速動かすことには成功したので投稿しようと思います。

実行結果

class TacticsThread extends Thread{
    public void run(){
        try{
            Thread.sleep(2000);
            ArrayList<Point> cpList=new ArrayList<Point>();
            Point oldPoint=new Point();
            Point newPoint=new Point();
            int random=0;
            //System.out.println("turn:"+turn);
            do{
                oldPoint=player[turn-1].nextMove(board,new Point(-1,-1));
                //System.out.println(oldPoint);
                cpList=board.canMoveList(oldPoint.x,oldPoint.y,board.direction);
            }while(cpList.size()<=0);
            //System.out.println("oldPoint:"+oldPoint);
            //System.out.println(cpList);
            Random r=new Random(System.currentTimeMillis());
            do{
                random=r.nextInt(cpList.size());
                //System.out.println("random"+random);
            }while(random<0);
            newPoint=cpList.get(random);
            //System.out.println("oldPoint:"+oldPoint);
            //System.out.println("newPoint:"+newPoint);
            board.setKomaAndTeban(oldPoint,newPoint,board.koma[oldPoint.y][oldPoint.x].getObverse(),Teban.enemy);
            changeTurn();
            repaint();
            board.printBoard();
            if(board.koma[newPoint.y][newPoint.x].getObverse()==Koma.king)
                EndMessageDialog("対戦相手の勝ちです");
        } catch(InterruptedException ie){
            ie.printStackTrace();
        }
    }
}

コメント

タイトルとURLをコピーしました