五子棋代碼java
Ⅰ java五子棋 程序解釋
要想充分了解你還是自己找doc幫助文檔
//導入包
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//構造applet程序
public class 五子棋 extends Applet implements ActionListener,MouseListener
{
String str="五子棋游戲!";
Dimension currentPos=new Dimension(); //實例化 像素
int zuobiao[][]=new int[19][15]; //聲明一個19*15的棋盤
int x=20,y=20;
boolean unfirstpaint=false;
boolean one=false;
//======================================================================
public void init() //初始化(生存周期第一步)
{
addMouseListener(this); //對滑鼠添加監聽
for(int i=0;i<=18;i++) //使整個棋盤設置為0
{
for(int j=0;j<=14;j++)
zuobiao[i][j]=0;
}
}
//======================================================================
public void paint(Graphics g) //畫圖(生存周期第二步)
{
int x0=30,y0=50,dx=30,dy=30,N=18,M=14; //x0,y0初始坐標,dx,dy每格間距
int x1,y1,x2,y2;
g.setColor(Color.green); //
y1=y0;
y2=y0+M*dy;
for(int i=0;i<=N;i++) //用綠色畫棋盤中縱向的線
{
x1=x0+i*dx;
g.drawLine(x1,y1,x1,y2);
}
g.setColor(Color.red); //設置成紅色
x1=x0;
x2=x0+N*dx;
for(int j=0;j<=M;j++) //用紅色畫棋盤中橫向的線
{
y1=y0+j*dy;
g.drawLine(x1,y1,x2,y1);
}
g.setColor(Color.red); //設置成紅色
g.setFont(new Font("TimesRoman",Font.BOLD,25)); //設置字體
g.drawString(str,120,30); //在指定位置(120,30)寫入「五子棋游戲!」
g.setColor(Color.red); //設置成紅色
g.fillOval(600,60,20,20) //用紅色填充橢圓;
g.drawString(" : 甲方",610,80); //在橢圓中寫入字
g.setColor(Color.blue); //設置成藍色
g.fillOval(600,100,20,20); //用藍色填充橢圓;
g.drawString(" : 乙方",610,120); //在橢圓中寫入字
//======================================================================
//這里代碼不全,currentPos沒有賦值,不好推測
if(unfirstpaint) //判斷是否為第一次畫棋子,如果不是第一次,執行
{
for(int i=0;i<=18;i++)//畫棋子
{
for(int j=0;j<=14;j++)
{
if(currentPos.width<=(45+i*30)&¤tPos.width>=(15+i*30))
//你的源文件不是這樣寫的,我覺得應該是這么寫
x=i;
if(currentPos.height<=(65+j*30)¤tPos.height>=(35+j*30))
y=j;
}
}
}
//=====================================================================
if(x!=20&&y!=20)
if(zuobiao[x][y]==0)
{
if(one)
zuobiao[x][y]=1; //等於1說明是紅色棋子
else
zuobiao[x][y]=2; //等於2說明是藍色棋子
}
//畫點圖=====================================================================
for(int i=0;i<=18;i++)
for(int j=0;j<=14;j++)
{
if(zuobiao[i][j]==1) //如果為1,畫紅棋子
{
g.setColor(Color.red);
g.fillOval(20+i*30,40+j*30,20,20);
}
if(zuobiao[i][j]==2) //如果為2,畫藍棋子
{
g.setColor(Color.blue);
g.fillOval(20+i*30,40+j*30,20,20);
}
}
Ⅱ 求一個簡單的JAVA五子棋代碼!! 網上復制的別來了!
我有一個,剛剛做的。可以實現人機對戰,人人對戰,悔棋,禁手等操作。機器方主要採用的是a-b剪枝演算法。功能很強大,代碼很多。
Ⅲ 用eclipse編寫一個基於java的五子棋(與電腦對弈)
基於java的五子棋:
主要功能代碼如下:
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
{
=1L;
JButton[][]point=newJButton[40][40];
int[][]state=newint[40][40];
int[][]value=newint[40][40];
int[]place=newint[2];
publicMain(){
this.setTitle("五子棋");
this.setBounds(100,10,1000,1000);
this.setLayout(newGridLayout(30,30));
inti,j;
for(i=0;i<=39;i++){
for(j=0;j<=39;j++){
state[i][j]=0;
value[i][j]=0;
}
}
for(i=5;i<=34;i++){
for(j=5;j<=34;j++){
point[i][j]=newJButton("");
this.add(point[i][j]);
point[i][j].addActionListener(this);
}
}
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
inti,j;
for(i=5;i<=34;i++){
for(j=5;j<=34;j++){
if(e.getSource()==point[i][j]){
point[i][j].setBackground(Color.RED);
state[i][j]=1;
point[i][j].setEnabled(false);
value[i][j]=0;
}
}
}
publicstaticvoidmain(String[]args)throwsNullPointerException{
newMain();
}
elseif(((state[i][j]==0)&&(state[i][j+1]==1)&&(state[i][j+2]==0))||
((state[i][j]==0)&&(state[i][j-1]==1)&&(state[i][j-2]==0))||
((state[i][j]==0)&&(state[i+1][j]==1)&&(state[i+2][j]==0))||
((state[i][j]==0)&&(state[i-1][j]==1)&&(state[i-2][j]==0))||//空紅空
((state[i][j]==0)&&(state[i+1][j+1]==1)&&(state[i+2][j+2]==0))||
((state[i][j]==0)&&(state[i+1][j-1]==1)&&(state[i+2][j-2]==0))||
((state[i][j]==0)&&(state[i-1][j+1]==1)&&(state[i-2][j+2]==0))||
((state[i][j]==0)&&(state[i-1][j-1]==1)&&(state[i-2][j-2]==0))||
((state[i][j]==0)&&(state[i][j+1]==1)&&(state[i][j+2]==1)&&(state[i][j+3]==2))||
((state[i][j]==0)&&(state[i][j-1]==1)&&(state[i][j-2]==1)&&(state[i][j-3]==2))||
((state[i][j]==0)&&(state[i+1][j]==1)&&(state[i+2][j]==1)&&(state[i+3][j]==2))||
((state[i][j]==0)&&(state[i-1][j]==1)&&(state[i-2][j]==1)&&(state[i-3][j]==2))||//空紅紅藍型
((state[i][j]==0)&&(state[i+1][j+1]==1)&&(state[i+2][j+2]==1)&&(state[i+3][j+3]==2))||
((state[i][j]==0)&&(state[i+1][j-1]==1)&&(state[i+2][j-2]==1)&&(state[i+3][j-3]==2))||
((state[i][j]==0)&&(state[i-1][j+1]==1)&&(state[i-2][j+2]==1)&&(state[i-3][j+3]==2))||
((state[i][j]==0)&&(state[i-1][j-1]==1)&&(state[i-2][j-2]==1)&&(state[i-3][j-3]==2))){
value[i][j]=2;
returnvalue[i][j];
}
elseif(((state[i][j]==0)&&(state[i][j+1]==2)&&(state[i][j+2]==0))||
((state[i][j]==0)&&(state[i][j-1]==2)&&(state[i][j-2]==0))||
((state[i][j]==0)&&(state[i+1][j]==2)&&(state[i+2][j]==0))||
((state[i][j]==0)&&(state[i-1][j]==2)&&(state[i-2][j]==0))||
((state[i][j]==0)&&(state[i+1][j+1]==2)&&(state[i+2][j+2]==0))||
((state[i][j]==0)&&(state[i+1][j-1]==2)&&(state[i+2][j-2]==0))||
((state[i][j]==0)&&(state[i-1][j+1]==2)&&(state[i-2][j+2]==0))||
((state[i][j]==0)&&(state[i-1][j-1]==2)&&(state[i-2][j-2]==0))||
((state[i][j]==0)&&(state[i][j+1]==2)&&(state[i][j+2]==2)&&(state[i][j+3]==1))||
((state[i][j]==0)&&(state[i][j-1]==2)&&(state[i][j-2]==2)&&(state[i][j-3]==1))||
((state[i][j]==0)&&(state[i+1][j]==2)&&(state[i+2][j]==2)&&(state[i+3][j]==1))||
((state[i][j]==0)&&(state[i-1][j]==2)&&(state[i-2][j]==2)&&(state[i-3][j]==1))||
((state[i][j]==0)&&(state[i+1][j+1]==2)&&(state[i+2][j+2]==2)&&(state[i+3][j+3]==1))||
((state[i][j]==0)&&(state[i+1][j-1]==2)&&(state[i+2][j-2]==2)&&(state[i+3][j-3]==1))||
((state[i][j]==0)&&(state[i-1][j+1]==2)&&(state[i-2][j+2]==2)&&(state[i-3][j+3]==1))||
((state[i][j]==0)&&(state[i-1][j-1]==2)&&(state[i-2][j-2]==2)&&(state[i-3][j-3]==1))){
value[i][j]=1;
returnvalue[i][j];
}
else{
value[i][j]=0;
returnvalue[i][j];
}
}
publicint[]largestValue(int[][]value){
intmax,i,j,l,k;
l=0;k=0;
max=0;
for(i=5;i<34;i++){
for(j=5;j<34;j++){
if(max<value[i][j]){
max=value[i][j];
place[0]=i;
place[1]=j;
}
}
}
returnplace;
}
}
運行結果如下圖所示:
Ⅳ 關於java五子棋的代碼
//棋子枚舉類
publicenumChessman
{
//枚舉類第一行必須列出所有實例,這兩個表示創建兩個棋子視力,它們的棋子成員變數分別是●和○
BLACK_CHESS("●"),WHITE_CHESS("○");
//成員變數,決定這個棋子的類型
privateStringchessman;
//構造器,枚舉類的構造器只能提供給自己的實例使用,外部不能調用
privateChessman(Stringchessman)
{
this.chessman=chessman;
}
//獲取棋子類型
publicStringgetChessman()
{
returnthis.chessman;
}
}
進行了一下小改動,
1、排版
2、我沒記錯的話枚舉實例是不能使用中文的
Ⅳ 求五子棋Java代碼旁邊就注釋 讓我看的清楚明白一些,要詳細的解釋和思路
import java.applet.*;
import t.*;
import t.event.*;
import java.applet.Applet;
import t.Color; //這一段import就不說了,下面要用到的就import進來
public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener
//繼承Applet表明是個applet,後面的介面必須要實現每個介面的所有方法
{
int color_Qizi=0;//旗子的顏色標識 0:白子 1:黑子
int intGame_Start=0;//游戲開始標志 0未開始 1游戲中
int intGame_Body[][]=new int[16][16]; //設置棋盤棋子狀態 0 無子 1 白子 2 黑子