关于java棋的信息

博主:adminadmin 2022-11-27 13:50:08 47

今天给各位分享java棋的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java五子棋怎么画ER图

先画正方形,然后画两条对折线完成。

第一步、我们先来画一画五子棋的棋盘,画出一个棋盘,画一个四方形。

第二步、接着我们画一画棋盘的棋盘格,横横竖竖的横要平,竖要直溜溜。

第三步、接着我们画出棋盘里面的棋子,黑色和白色的棋子就完成啦。

五子棋棋盘java实现

其实我也有用JAVA做五子棋呢~,棋盘都是用画的,我把代码发下,你自己试下,也不定合你一意.事件代码我都去啦,因为是简单的麻烦事.~!

import java.awt.*;

import javax.swing.*;

@SuppressWarnings("serial")

public class ChessBoard extends JPanel{

/*

* 制作棋盘的宽高;

*/

public static final int BOARD_WIDTH=515;

/*

* 计算棋盘表格坐标(单元格宽高相等)

*/

public static int [] location=new int[22];

static{

for(int i=0,WIDTH=30;ilocation.length;i++,WIDTH+=22){

location[i]=WIDTH;

}

}

public ChessBoard(int x,int y){

super(null);

this.setBounds(x, y, BOARD_WIDTH, BOARD_WIDTH);

this.setBackground(new Color(255, 164, 85));

}

/**

* 重写方法,绘制棋盘表格图;

*/

public void paintComponent(Graphics g){

super.paintComponent(g);

char ch='A';

g.setFont(new Font("宋体",Font.BOLD,12));

//画横线

for(int i=0,width=30+22*21;ilocation.length;i++,ch++){

g.setColor(Color.black);

g.drawLine(30,location[i],width,location[i]);

g.setColor(Color.blue);

g.drawString(""+ch,5,location[i]+3);

}

//画竖线

for(int i=0,width=30+22*21;ilocation.length;i++){

g.setColor(Color.black);

g.drawLine(location[i],30,location[i],width);

g.setColor(Color.blue);

g.drawString(""+(i+1),location[i]-3,13);

}

}

}

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)currentPos.width=(15+i*30))

//你的源文件不是这样写的,我觉得应该是这么写

x=i;

if(currentPos.height=(65+j*30)currentPos.height=(35+j*30))

y=j;

}

}

}

//=====================================================================

if(x!=20y!=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黑白棋涉及到java中的哪些技术?

制作棋盘需要GUI,也就是图形用户界面;判断走棋需要设计算法,要用多线程技术;建立网络连接需要网络编程;还需要数据库。差不多就这些。。。

JAVA五子棋中如何实现重新开始和悔棋的功能

一般来说是不应该像你这样写的,应该是把要画的步骤写在组件的被覆写的paintComponent函数里,然后在你响应事件的函数里直接掉用该组件的repaint()函数即可。repaint函数是会去掉该组件的paintComponent()函数的。至于你这么写为啥不行,这个我也不清楚,据我猜测,repaint函数要做的事情是刷新组件,并且重新去画一遍,不过这个步骤不一定是立即完成,可能有延迟。总之在你画那些棋子之后,它又干了一些事情,导致你画的棋子没了(但这不会影响到它自己想去画的东西,即paintComponent()函数里的东西),另外不要忘了,覆写paintComponent时,第一行要写,super.paintComponent(g),这是去画它原来有的东西(比如加上去的按钮,文本框之类的东西)

例如下面:

12345678910111213141516171819202122232425262728293031323334353637class PanelM extends JPanel{ ImageIcon icon = new ImageIcon("app.gif"); JLabel jl = new JLabel(icon, SwingConstants.CENTER); int x, y; private ListInteger listX = new ArrayListInteger(); private ListInteger listY = new ArrayListInteger(); public PanelM() { add(jl); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent m) { x = m.getX(); y = m.getY(); listX.add(x); listY.add(y); repaint(); } }); } public void paintComponent(Graphics g) { super.paintComponent(g); for (int i = 0; i listX.size(); i++) { g.fillOval(listX.get(i), listY.get(i), 20, 20); } }}

用eclipse编写一个基于java的五子棋(与电脑对弈)

基于java的五子棋:

主要功能代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class Main extends JFrame implements ActionListener{

        private static final long serialVersionUID = 1L;

        JButton[][] point=new JButton[40][40];

        int[][] state=new int[40][40];

        int[][] value=new int[40][40];

        int[] place=new int[2];

        public Main(){

                this.setTitle("五子棋");

                this.setBounds(100,10,1000,1000);

                this.setLayout(new GridLayout(30,30));

                int i,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]=new JButton("");

                                this.add(point[i][j]);

                                point[i][j].addActionListener(this);

                        }

                }

                this.setVisible(true);

        }

        public void actionPerformed(ActionEvent e)

    {

            int i,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;

                            }

                    }

            }

          

    public static void main(String[] args)throws NullPointerException{

            new Main();

    }

                else if(((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;

                                return value[i][j];

                }

                else if(((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;

                                return value[i][j];

                }

                else{

                        value[i][j]=0;

                        return value[i][j];

                }

    }

    public int[] largestValue(int[][] value){

            int max,i,j,l,k;

            l=0;k=0;

            max=0;

            for(i=5;i34;i++){

                    for(j=5;j34;j++){

                            if(maxvalue[i][j]){

                                    max=value[i][j];

                                    place[0]=i;

                                    place[1]=j;

                            }

                    }

            }

            return place;

    }

}

运行结果如下图所示:

关于java棋和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。