当前位置:首页 » 编程语言 » 五子棋代码java

五子棋代码java

发布时间: 2023-12-03 17:28:55

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 黑子

热点内容
androidsdk接入 发布:2025-01-24 20:54:14 浏览:193
我的世界服务器如何使用路由器映射 发布:2025-01-24 20:49:30 浏览:739
脚本操作浏览器 发布:2025-01-24 20:41:40 浏览:296
fast自动获取ip地址服务器无响应 发布:2025-01-24 20:19:13 浏览:710
http加密数据 发布:2025-01-24 20:15:00 浏览:100
中国存储行业排名 发布:2025-01-24 20:02:21 浏览:422
arm编译链 发布:2025-01-24 19:42:12 浏览:700
linuxc的函数返回值 发布:2025-01-24 19:35:23 浏览:665
威纶编程软件反编译 发布:2025-01-24 19:30:26 浏览:49
网络存储单元 发布:2025-01-24 19:28:04 浏览:168