91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 98KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-23
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 五子棋??alphabeta??

資源簡(jiǎn)介

界面借鑒了網(wǎng)上的開(kāi)源資源,進(jìn)行了部分改進(jìn)。alphabeta算法參考了網(wǎng)上的例子,加了一點(diǎn)改進(jìn),局面評(píng)估采用了網(wǎng)上開(kāi)源資源的一部分,也加了一部分改進(jìn)。該程序具備初步的智能,還有很大的改進(jìn)空間

資源截圖

代碼片段和文件信息

import?java.awt.Color;
import?java.awt.Cursor;
import?java.awt.Dimension;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Graphics2D;
import?java.awt.Image;
import?java.awt.RadialGradientPaint;
import?java.awt.RenderingHints;
import?java.awt.Toolkit;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseListener;
import?java.awt.event.MouseMotionListener;
import?java.awt.geom.Ellipse2D;

import?javax.swing.*;

import?alphabeta.Constant;
import?alphabeta.EvalPosition;
import?alphabeta.GobangBoard;
import?alphabeta.Position;

/**
?*?五子棋--棋盤類
?*/

public?class?ChessBoard?extends?JPanel?implements?MouseListener?{

public?static?final?int?MARGIN?=?30;//?邊距
public?static?final?int?GRID_SPAN?=?35;//?網(wǎng)格間距
public?static?final?int?ROWS?=?15;//?棋盤行數(shù)
public?static?final?int?COLS?=?15;//?棋盤列數(shù)

Point[]?chessList?=?new?Point[(ROWS?+?1)?*?(COLS?+?1)];//?初始每個(gè)數(shù)組元素為null
boolean?isBlack?=?true;//?默認(rèn)開(kāi)始是黑棋先
boolean?gameOver?=?false;//?游戲是否結(jié)束
int?chessCount;//?當(dāng)前棋盤棋子的個(gè)數(shù)
int?xIndex?yIndex;//?當(dāng)前剛下棋子的索引

Image?img;
Image?shadows;
Color?colortemp;

private?GobangBoard?gobangBoard?=?new?GobangBoard(15?15);

public?ChessBoard()?{
????????
// ?setBackground(Color.GRAY);//設(shè)置背景色為橘黃色
img?=?Toolkit.getDefaultToolkit().getImage(“board.jpg“);
shadows?=?Toolkit.getDefaultToolkit().getImage(“shadows.jpg“);
addMouseListener(this);
addMouseMotionListener(new?MouseMotionListener()?{
public?void?mouseDragged(MouseEvent?e)?{

}

public?void?mouseMoved(MouseEvent?e)?{
//?將鼠標(biāo)點(diǎn)擊的坐標(biāo)位置轉(zhuǎn)成網(wǎng)格索引
int?y1?=?(e.getX()?-?MARGIN?+?GRID_SPAN?/?2)?/?GRID_SPAN;
int?x1?=?(e.getY()?-?MARGIN?+?GRID_SPAN?/?2)?/?GRID_SPAN;
//?游戲已經(jīng)結(jié)束不能下
//?落在棋盤外不能下
//?x,y位置已經(jīng)有棋子存在,不能下
if?(x1??ROWS?||?y1??COLS?||?gameOver?||?findChess(x1?y1))
setCursor(new?Cursor(Cursor.DEFAULT_CURSOR));
//?設(shè)置成默認(rèn)狀態(tài)
else
setCursor(new?Cursor(Cursor.HAND_CURSOR));

}
});
}

//?繪制
public?void?paintComponent(Graphics?g)?{

super.paintComponent(g);//?畫棋盤

int?imgWidth?=?img.getWidth(this);
int?imgHeight?=?img.getHeight(this);//?獲得圖片的寬度與高度
int?FWidth?=?getWidth();
int?FHeight?=?getHeight();//?獲得窗口的寬度與高度
int?x?=?(FWidth?-?imgWidth)?/?2;
int?y?=?(FHeight?-?imgHeight)?/?2;
g.drawImage(img?x?y?null);

for?(int?i?=?0;?i? g.drawString(Integer.toString(i)?MARGIN-20?MARGIN?+?i?*?GRID_SPAN);
g.drawLine(MARGIN?MARGIN?+?i?*?GRID_SPAN?MARGIN?+?(COLS-1)?*?GRID_SPAN?MARGIN?+?i?*?GRID_SPAN);
}
for?(int?i?=?0;?i? g.drawString(Integer.toString(i)?MARGIN?+?i?*?GRID_SPAN?MARGIN?);
g.drawLine(MARGIN?+?i?*?GRID_SPAN?MARGIN?MARGIN?+?i?*?GRID_SPAN?MARGIN?+?(ROWS-1)?*?GRID_SPAN);

}

//?畫棋子
for?(int?i?=?0;?i? //?網(wǎng)格交叉點(diǎn)x,y坐標(biāo)
int?xPos?=?chessList[i].getX()?*?GRID_SPAN?+?MARGIN;
int?yPos?=?chessList[i].getY()?*?GRID_SPAN?+?MARGI

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-16?20:11??fir2\
?????文件?????????303??2019-01-16?20:29??fir2\.classpath
?????文件?????????380??2017-07-13?15:05??fir2\.project
?????目錄???????????0??2017-07-13?15:07??fir2\.settings\
?????文件??????????57??2017-07-13?15:07??fir2\.settings\org.eclipse.core.resources.prefs
?????文件?????????598??2017-07-13?15:05??fir2\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2019-01-16?20:29??fir2\bin\
?????目錄???????????0??2019-01-16?20:29??fir2\bin\alphabeta\
?????文件????????1141??2019-01-16?20:29??fir2\bin\alphabeta\Constant.class
?????文件?????????923??2019-01-16?20:29??fir2\bin\alphabeta\EvalPosition.class
?????文件???????20468??2019-01-16?20:29??fir2\bin\alphabeta\GobangBoard.class
?????文件?????????893??2019-01-16?20:29??fir2\bin\alphabeta\Move.class
?????文件?????????703??2019-01-16?20:29??fir2\bin\alphabeta\Position.class
?????文件?????????991??2019-01-16?20:29??fir2\bin\alphabeta\StateCount.class
?????文件????????1083??2019-01-16?20:29??fir2\bin\ChessBoard$1.class
?????文件????????9095??2019-01-16?20:29??fir2\bin\ChessBoard.class
?????文件?????????701??2019-01-16?20:29??fir2\bin\Point.class
?????文件????????1581??2019-01-16?20:29??fir2\bin\StartChessJframe$MyItemListener.class
?????文件????????3118??2019-01-16?20:29??fir2\bin\StartChessJframe.class
?????目錄???????????0??2018-12-26?10:10??fir2\lib\
?????文件??????????45??2017-07-13?15:39??fir2\r.bat
?????目錄???????????0??2019-01-16?20:12??fir2\src\
?????目錄???????????0??2019-01-15?09:54??fir2\src\alphabeta\
?????文件?????????996??2019-01-15?09:53??fir2\src\alphabeta\Constant.java
?????文件?????????617??2019-01-11?11:28??fir2\src\alphabeta\EvalPosition.java
?????文件???????33739??2019-01-16?20:10??fir2\src\alphabeta\GobangBoard.java
?????文件?????????581??2019-01-11?09:54??fir2\src\alphabeta\Move.java
?????文件?????????425??2019-01-11?10:45??fir2\src\alphabeta\Position.java
?????文件????????1004??2019-01-15?10:24??fir2\src\alphabeta\StateCount.java
?????文件???????12161??2019-01-16?20:22??fir2\src\ChessBoard.java
?????文件?????????521??2017-07-13?15:07??fir2\src\Point.java
............此處省略1個(gè)文件信息

評(píng)論

共有 條評(píng)論