java五子棋,java绘制五子棋棋盘

  java五子棋,java绘制五子棋棋盘

  本文分享了Java实现无界面五子棋的具体代码供大家参考,具体内容如下

  00-1010本设计是一个基于Java类和对象以及知识点数组开发的小型五子棋游戏程序。游戏开始时,选择黑棋和白棋开始,在棋盘的第一个坐标上丢一个棋子,然后轮流丢棋子,以此类推,直到有一方先将棋盘的纵向、横向或两个斜向的五个棋子连接起来,则该方获胜。

  00-1010 1.棋盘设计为10*10格,棋盘类型Chess[][]为属性字符串chessType的二维数组;首先,chessType值是" "。2.初始化二维数组。3.玩家选定黑白圈后,开始下棋。要输入棋子的行列坐标,黑白棋子轮流下,当一方连上五颗棋子或满棋盘时,游戏结束(连上五颗棋子的一方获胜,满棋盘为和局)。4.每走一步成功后,立即判断以此位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有同色棋子,并连成五枚。如果连接成五块,游戏结束,输出相应的信息。5.当游戏的一方获胜时,显示胜利信息。从程序表面看,这是一个二维平面,所以数据用二维数组表示。数组的两个下标可以表示棋盘上的位置,数组元素的值表示棋盘上的状态。有三种情况,白棋,黑棋,格子。

  

项目介绍:

1.棋子

 

  /* * * * @作者胡东升* @ date 2020/10/29-9:28 */公共类ChessType {私有字符串chestype;私有int x;私有int y;public int getX(){ return x;} public void setX(int x){ this . x=x;} public int getY(){ return y;} public void setY(int y){ this . y=y;}公共chestype(){ }公共字符串getchestype(){ return chestype;} public void setchestype(String chestype){ this . chestype=chestype;} }2.下棋

  /* * * * @作者胡东升* @ date 2020/10/29-9:27 */公开课五子棋{ private int size=1;私有chestype[][]chestypes;私有int行;私有int列;私有int x;私有int y;//创建棋盘公共五子棋(int row,int column){ this . row=row;this.colum=columchestypes=new chestype[row][column];}//初始化棋盘公共void initchestype(){ for(int I=0;i chessTypes.lengthI){ for(int j=0;j chestypes[I]。长度;j){ chestypes[I][j]=new chestype();chestypes[I][j]。setchestype(“”);} } }//用public void setwhitness(int x,int y) {chestypes [x] [y]下白棋。setchestypes(“”);}//下黑棋public void setblackchess (int x,int y) {chestypes [x] [y]。setchestypes();}//判断victory是否为公共布尔checkwin (int I,int j) {//todo自动生成方法存根布尔标志=false//判断垂直方向是否有五块颜色相同int count1=1//相同的颜色

  棋子的个数            String color = chessTypes[i][j].getChessType(); //刚下的棋子的颜色            int a = 1;  //棋子索引的增量            while((i+a)<row && color == chessTypes[i+a][j].getChessType()){                count1++;                a++;            }            a = 1;            while((i-a)>=0 && color == chessTypes[i-a][j].getChessType()){                count1++;                a++;            }            if(count1 >= 5){                flag = true;            }            //判断纵向是否有五个棋子是相同的颜色            int count2 = 1;            a = 1;            while((j+a)<colum && color == chessTypes[i][j+a].getChessType()){                count2++;                a++;            }            a = 1;            while((j-a)>=0 && color == chessTypes[i][j-a].getChessType()){                count2++;                a++;            }            if(count2 >= 5){                flag = true;            }            //右上    左下 是否有五个棋子是相同的颜色            int count3 = 1;            a = 1;            while((i+a)<row && (j-a)>=0 && color == chessTypes[i+a][j-a].getChessType()){                count3++;                a++;            }            a = 1;            while((i-a)>=0 && (j+a)<colum && color == chessTypes[i-a][j+a].getChessType()){                count3++;                a++;            }            if(count3 >= 5){                flag = true;            }            //左上  右下  是否有五个棋子是相同的颜色            int count4 = 1;            a = 1;            while((i-a)>0 && (j-a)>=0 && color == chessTypes[i-a][j-a].getChessType()){                count4++;                a++;            }            a = 1;            while((i+a)<row && (j+a)<colum && color == chessTypes[i+a][j+a].getChessType()){                count4++;                a++;            }            if(count4 >= 5){                flag = true;            }            return flag;        }        //落子后打印棋盘    public void print(){        for(int i = 0; i< chessTypes.length; i++){            for (int j = 0; j< chessTypes[i].length; j++){                System.out.print(chessTypes[i][j].getChessType());            }            System.out.println();        }    }}3.测试

  

** * @author hudongsheng * @date 2020/10/29 - 9:27 */public class Test {    public static void main(String[] args) {        boolean flag = true;        int x;        int y;        Gobang gobang = new Gobang(10,10);        Scanner scanner = new Scanner(System.in);        gobang.initChessType();        //下棋        System.out.println("黑棋执先");        while (true){            gobang.print();            System.out.println("请输入下黑棋的坐标:");            x = scanner.nextInt();            y = scanner.nextInt();            gobang.setBlackChess(x,y);            if(gobang.checkWin(x,y)){                gobang.print();                System.out.println("黑棋胜!");                break;            }            gobang.print();            System.out.println("请输入下白棋的坐标:");            x = scanner.nextInt();            y = scanner.nextInt();            gobang.setWhiteChess(x,y);            if(gobang.checkWin(x,y)){                gobang.print();                System.out.println("白棋胜!");                break;            }        }    }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: