public void itemStateChanged(ItemEvent e) //ItemListener接口中的方法,必须要有
{
if (ckbHB[0].getState()) //选择黑子先还是白子先
{
color_Qizi=0; //白棋先
}
else
{
color_Qizi=1; //黑棋先
}
}
public void actionPerformed(ActionEvent e) //ActionListener接口中的方法,也是必须的
{
Graphics g=getGraphics(); //这句话貌似可以去掉,g是用来画图或者画界面的
if (e.getSource()==b1) //如果动作的来源是第一个按钮
{
Game_start(); //游戏开始
}
else //否则
{
Game_re(); //游戏重新开始
}
}
public void mousePressed(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void mouseClicked(MouseEvent e) //鼠标单击时
{
Graphics g=getGraphics(); //获得画笔
int x1,y1;
x1=e.getX(); //单击处的x坐标
y1=e.getY(); //单击处的y坐标
if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) //在棋盘范围之外
{
return; //则这是不能走棋的,直接返回
}
//下面这两个if和两个赋值的作用是将x和y坐标根据舍入原则修改成棋盘上格子的坐标
if (x1%20>10)
{
x1+=20;
}
if(y1%20>10)
{
y1+=20;
}
x1=x1/20*20;
y1=y1/20*20;
set_Qizi(x1,y1); //在棋盘上画上一个棋子
}
public void mouseEntered(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void mouseExited(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void mouseReleased(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void mouseDragged(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void mouseMoved(MouseEvent e){} //MouseListener接口中的方法,用不到所以留个空,但一定要有
public void paint(Graphics g) //重绘和applet程序装载的时候会调用这个绘制的过程
{
draw_qipan(g); //画棋盘
}
public void set_Qizi(int x,int y) //落子
{
if (intGame_Start==0) //判断游戏未开始
{
return; //走棋无效,返回
}
if (intGame_Body[x/20][y/20]!=0) //如果这个位置上已经有了棋子
{
return; //走棋无效,返回
}
Graphics g=getGraphics(); //获得画笔
if (color_Qizi==1)//判断黑子还是白子
{
g.setColor(Color.black); //设置颜色为黑色
color_Qizi=0; //下一步棋就会是白色了
}
else
{
g.setColor(Color.white); //设置颜色为白色
color_Qizi=1; //下一步棋颜色为黑色
}
g.fillOval(x-10,y-10,20,20); //画一个圆,前面两个参数是左上角坐标
intGame_Body[x/20][y/20]=color_Qizi+1; //棋盘状态中这个位置上相应地添上棋子,1为白棋2为黑棋0为空位置
if (Game_win_1(x/20,y/20)) //判断输赢,这么几个判断输赢的函数没找到嘛~楼主看看代码是不是全的
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); //修改标签上的输赢的信息
intGame_Start=0; //游戏结束
}
if (Game_win_2(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); //修改标签上的输赢的信息
intGame_Start=0; //游戏结束
}
if (Game_win_3(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); //修改标签上的输赢的信息
intGame_Start=0; //游戏结束
}
if (Game_win_4(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); //修改标签上的输赢的信息
intGame_Start=0; //游戏结束
}
}
public String Get_qizi_color(int x) //获得棋子颜色的字符串
{
if (x==0) //黑棋
{
return "黑子";
}
else //白棋
{
return "白子";
}
}public void draw_qipan(Graphics G) //画棋盘 15*15
{
G.setColor(Color.lightGray); //设置颜色为亮灰色
G.fill3DRect(10,10,300,300,true); //绘制一个用当前颜色填充的 3-D 高亮显示矩形,矩形的边是高亮显示的
G.setColor(Color.black); //设置颜色为黑色
for(int i=1;i<16;i++) //15*15的棋盘,横竖各有16道线
{
G.drawLine(20,20*i,300,20*i); //画竖线
G.drawLine(20*i,20,20*i,300); //画横线
}
}
public void Game_start() //游戏开始
{
intGame_Start=1; //游戏状态为 1游戏中
Game_btn_enable(false); //设置所有组件不可用
b2.setEnabled(true); //重新开始游戏的按钮可用
}
public void Game_start_csh() //游戏开始初始化
{
intGame_Start=0; //游戏状态为 0未开始游戏
Game_btn_enable(true); //设置所有组件可用
b2.setEnabled(false); //重新开始游戏的按钮不可用
ckbHB[0].setState(true); //默认设置为白棋先手
//下面的二重循环是初始化棋盘为空棋盘,即一个棋子都没有
for (int i=0;i<16 ;i++ )
{
for (int j=0;j<16 ;j++ )
{
intGame_Body[i][j]=0;
}
}
lblWin.setText(""); //输赢信息为空
}
public void Game_re() //游戏重新开始
{
repaint(); //界面重绘
Game_start_csh(); //游戏重新初始化
}
public void Game_btn_enable(boolean e) //设置组件状态
{
b1.setEnabled(e); //第一个按钮设置为可用(e == true)或不可用(e == false)
b2.setEnabled(e); //第二个按钮设置 同上
ckbHB[0].setEnabled(e); //第一个checkbox设置 同上
ckbHB[1].setEnabled(e); //第二个checkbox设置 同上
}
温馨提示:内容为网友见解,仅供参考
下了个JAVA五子棋代码不会看 求注释
set_Qizi(x1,y1); \/\/在棋盘上画上一个棋子 } public void mouseEntered(MouseEvent e){} \/\/MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseExited(MouseEvent e){} \/\/MouseListener接口中的方法,用不到所以留个空,但一定要有 public void mouseReleased(MouseEvent e...
求五子棋Java代码旁边就注释 让我看的清楚明白一些,要详细的解释和思路...
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;\/\/...
关于java五子棋的代码
\/\/棋子枚举类public enum Chessman{ \/\/枚举类第一行必须列出所有实例,这两个表示创建两个棋子视力,它们的棋子成员变量分别是●和○ BLACK_CHESS("●"), WHITE_CHESS("○"); \/\/成员变量,决定这个棋子的类型 private String chessman; \/\/构造器,枚举类的构造器只能提供给自己的实例使用,外部不能...
求一个简单的JAVA五子棋代码!! 网上复制的别来了!
public void whoWin(Games wz) { \/\/ 从数组挨个查找找到某个类型的棋子就从该棋子位置向右,向下,斜向右下 各查找5连续的位置看是否为5个相同的 int xlabel;\/\/ 记录第一次找到某个棋子的x坐标 int ylabel;\/\/ 记录第一次找到某个棋子的y坐标 \/\/ ●○╋ \/\/ 判断人是否赢了 for (int i =...
跪求JAVA五子棋源代码
很sb的电脑五子棋:import java.io.*;import java.util.*;public class Gobang { \/\/ 定义一个二维数组来充当棋盘 private String[][] board;\/\/ 定义棋盘的大小 private static int BOARD_SIZE = 15;public void initBoard() { \/\/ 初始化棋盘数组 board = new String[BOARD_SIZE][BOARD_SIZE]...
求五子棋代码(要java写的),有界面
import java.awt.Color;public class WuZhiqi extends Applet implements ActionListener, MouseListener,MouseMotionListener, ItemListener { int color = 0;\/\/ 旗子的颜色标识 0:白子 1:黑子 boolean isStart = false;\/\/ 游戏开始标志 int bodyArray[][] = new int[16][16]; \/\/ 设置棋盘棋子...
急!!! Java五子棋源代码注释
急!!! Java五子棋源代码注释 1.帮我看一下这端程序,然后帮我写一个简单的文档,就是说一下这个程序开发的思路,实现了什么如何实现的,采用的技术特点,个各类的作用。2.任选不少于20行连续的代码作出解释。谢谢... 1.帮我看一下这端程序,然后帮我写一个简单的文档,就是说一下这个程序开发的思路,实现了什么...
java五子棋源代码
chessclient.setTitle("Java五子棋客户端 "+"用户名:"+chessclient.chessClientName); } else if(recMessage.equals("\/reject")) { try { chessclient.chesspad.statusText.setText("不能加入游戏"); chessclient.controlpad.cancelGameButton.setEnabled(false); chessclient.controlpad.joinGameButton.set...
我想知道用Java编写的五子棋怎么判断输赢
代码:先把每个点放入2维数组里 定义一个 chess[x][y]\/\/这里的x ,y是用mouseclick监听他的x,y 用arg0.getY() , arg0.getY() 方法取到的 值 定义一个boolean类判断是否赢 flag \/\/ 横向 boolean flag = false; \/\/一开始不赢 int i1 = 1; \/\/用他来循环第几个棋子 int count...
java五子棋代码带详细解释
浩大的工程 你有五子棋程序 如果你水平还行的话你参照这个聊天室程序应该也比较容易写出人人对战的package Chat;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java...