「java的五子棋」java的五子棋游戏的设计实现报告

博主:adminadmin 2022-11-30 00:29:07 66

本篇文章给大家谈谈java的五子棋,以及java的五子棋游戏的设计实现报告对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java五子棋问题

你好:

我给你讲下思路吧。你可以用0表示没有 棋子,1代表黑棋,2代表白棋。然后"int [][] allChess = new int[19][19]; ",这个二维数组刚好表示空棋盘。你每下一个白棋,把该位置的值改为2,黑棋改为1。输赢判断,横向,如果allChess[x][y]的颜色跟allChess[x+i][y],i从1循环4,往左就减i。满足一个count++,count初始为一,因为从你点击的那个子开始算,至少有一个子连成一条线。关键来了,左上--右下方向 , 判断allChess[x][y]==allChess[x+i][y+i]?count++:count。

五子棋的Java算法

五子棋的算法是比较简单的。

把棋盘当作一个

2

维数组。

用2维数组来当作棋盘的坐标系

当落子

之后。

把落子,插入到

数组中

获得

棋盘

的数组,

循环刚才数组,

判断,

刚才

数组元素

横向坐标

-5

到刚才

数组元素坐标

+

5

是否都是

一个数字(黑子代表

1

,白子代表0)

只要其中

有连续

5个

都是

黑子,或者白子,

则黑子或白子

赢了。

判断,刚才元素

纵向坐标

-5

+

5

如上判断。

判断

右斜线。

判断

横向坐标

-5

y

-5

横向坐标

+

5

y

+

5

判断

y

+

5

x

+

5

y-5

x

-5

简单来说。

用2维数组

来代表

棋盘

每次在

界面上,

由白子,或黑子

落子之后,

在数组相应坐标,放入

1

或者0

然后循环数组判断,

数组横向

竖向

右斜线

左斜线

是否是

黑子或者白子

连续的。

如果是,则获胜。

用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的五子棋和java的五子棋游戏的设计实现报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

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