{
If (ckbHB[0])。getState()) //先選黑子還是先選白化體。
{
color _ Qizi = 0;//白啟賢
}
其他
{
color _ Qizi = 1;//黑棋第壹
}
}
public void action performed(action event e)//action listener接口中的方法也是必需的。
{
graphics g = get graphics();//看來這句話可以去掉了。g用來畫圖或者畫界面。
If (e.getSource()==b1) //如果動作的來源是第壹個按鈕,
{
Game_start()。//遊戲開始
}
否則//否則
{
game _ re();//遊戲重新開始。
}
}
public void mouse pressed(mouse event e){ }//mouse listener接口中的方法是不需要的,所以留空,但必須可用。
Public void鼠標被點擊(鼠標事件e)//當鼠標被點擊時。
{
graphics g = get graphics();//拿畫筆
int x1,y 1;
x 1 = e . getx();//單擊的x坐標。
y 1 = e . gety();//單擊的y坐標。
if(e . getx()& lt;20 | | e . getx()>;300 | | e . gety()& lt;20 | | e . gety()>;300) //超出棋盤的範圍
{
返回;//然後就不能下棋了,直接返回。
}
//下面兩個if和兩個賦值,根據四舍五入原理,將X,Y坐標修改為棋盤上的網格坐標。
if(x 1% 20 & gt;10)
{
x 1+= 20;
}
if(y 1% 20 & gt;10)
{
y 1+= 20;
}
x 1 = x 1/20 * 20;
y 1 = y 1/20 * 20;
set_Qizi(x1,y 1);//在棋盤上畫壹個棋子
}
public void mouse enter(mouse event e){ }//mouse listener接口中的方法是不需要的,可以留空,但必須可用。
public void mouse existing(mouse event e){ }//mouse listener接口中的方法不需要,所以留空,但必須可用。
public void mouse released(mouse event){ }//mouse listener接口中的方法是不需要的,所以留空,但必須可用。
public void mouse dragged(mouse event e){ }//mouse listener接口中的方法是不需要的,所以留空,但必須可用。
public void mouse moved(mouse event e){ }//mouse listener接口中的方法是不需要的,所以留空,但必須可用。
Public void paint(Graphics g) //重繪和applet加載時會調用這個繪制過程。
{
draw _潘琪(g);//畫壹個棋盤
}
Public void set _ qizi (int x,int y)//Luozi
{
If (intGame_Start==0) //判斷遊戲還沒有開始。
{
返回;//無效的棋步,返回
}
if (intGame_Body[x/20][y/20]!=0) //如果這個位置已經有棋子,
{
返回;//無效的棋步,返回
}
graphics g = get graphics();//拿畫筆
If (color_Qizi==1)//判斷是黑子還是白子。
{
g . set color(color . black);//將顏色設置為黑色。
color _ Qizi = 0;//下壹步棋會是白棋
}
其他
{
g . set color(color . white);//將顏色設置為白色
color _ Qizi = 1;//下壹步棋是黑。
}
g.fillOval(x-10,y-10,20,20);//畫壹個圓,前兩個參數是左上角坐標。
int game _ Body[x/20][y/20]= color _ Qizi+1;//在棋盤狀態下,棋子對應加到這個位置,1是白棋2和黑棋0的空位置。
If (game _ win _ 1 (x/20,y/20))//判斷輸贏,我還沒找到這些判斷代碼是否完整的函數。
{
llbwin . settext(get _ qizi _ color(color _ qizi)+“贏!”);//修改標簽上的輸贏信息。
int game _ Start = 0;//遊戲結束
}
If (Game_win_2(x/20,y/20)) //判斷輸贏。
{
llbwin . settext(get _ qizi _ color(color _ qizi)+“贏!”);//修改標簽上的輸贏信息。
int game _ Start = 0;//遊戲結束
}
If (Game_win_3(x/20,y/20)) //判斷輸贏。
{
llbwin . settext(get _ qizi _ color(color _ qizi)+“贏!”);//修改標簽上的輸贏信息。
int game _ Start = 0;//遊戲結束
}
If (Game_win_4(x/20,y/20)) //判斷輸贏。
{
llbwin . settext(get _ qizi _ color(color _ qizi)+“贏!”);//修改標簽上的輸贏信息。
int game _ Start = 0;//遊戲結束
}
}
公共字符串Get _ Qizi _ Color(int x)//獲取棋子顏色的字符串。
{
If (x==0) //黑棋
{
返回“黑子”;
}
Else //白棋
{
返回“白子”;
}
} public void draw _潘琪(圖形g)//繪制棋盤15*15。
{
g . set color(color . light gray);//將顏色設置為亮灰色。
G.fill3DRect(10,10,300,300,true);//繪制壹個用當前顏色填充的三維突出顯示矩形,矩形的邊緣被突出顯示。
g . set color(color . black);//將顏色設置為黑色。
for(int I = 1;我& lt16;I++) //15*15縱橫16行的棋盤。
{
g .畫線(20,20*i,300,20 * I);//畫壹條垂直線
g .畫線(20*i,20,20*i,300);//畫壹條水平線
}
}
Public void Game_start() //遊戲開啟。
{
int game _ Start = 1;//遊戲狀態是1。在遊戲中,
game _ BTN _ enable(false);//設置所有組件不可用
b2.setEnabled(真);//重啟遊戲的按鈕可用。
}
Public void Game_start_csh() //遊戲初始化。
{
int game _ Start = 0;//遊戲狀態為0,遊戲尚未開始。
Game_btn_enable(真);//設置所有可用的組件
B2 . set enabled(false);//重新啟動遊戲的按鈕不可用
ckbHB[0]。setState(真);//默認設置是白色優先。
//下面的雙循環是將棋盤初始化為空棋盤,即沒有棋子。
for(int I = 0;我& lt16 ;i++)
{
for(int j = 0;j & lt16 ;j++)
{
int game _ Body[I][j]= 0;
}
}
LBL win . settext(" ");//輸贏信息為空。
}
Public void Game_re() //遊戲重新開始。
{
repaint();//重新繪制界面
遊戲_開始_ csh();//遊戲重新初始化
}
public void game _ BTN _ enable(Boolean e)//設置組件狀態。
{
b 1 . set enabled(e);//第壹個按鈕設置為可用(e == true)或不可用(e == false)。
B2 . set enabled(e);//第二個按鈕設置如上。
ckbHB[0]。set enabled(e);//第壹個復選框設置同上。
ckbHB[1]。set enabled(e);//第二個復選框的設置同上。
}