Java实现五子棋游戏(控制台版)

本项目为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下

该项目为Java编程语言编写的五子棋游戏(控制台版),用到二维数组、for循环、if语句、while()语句、Scanner Until包,此项目主要是对数组的使用。该项目的功能有落子、输出棋盘、判断输赢。

代码条:

package edu.qizi.gam;

import java.util.Scanner;

public class GobangTest {
 public static void main(String[] args) {
  int BoardSize = 20;
  // 棋盘的实现
  String[][] board = new String[BoardSize][BoardSize];

  for (int i = 0; i < board.length; i++) {
   for (int j = 0; j < board[i].length; j++) {
    board[i][j] = "+";
   }
  }
  //输出棋盘
  PrintBoard(board);
  while(true) {
  //黑棋落子
  System.out.println("黑棋落子");
  BlackMoveLater(board);
//  每下一步黑棋要输出一下棋盘
  PrintBoard(board);

//  行判断黑棋
  BlackRow(BoardSize, board);
//  列判断黑棋
  BlackLine(BoardSize, board);
//  自左上--->右下判断黑棋,每次第二个for循环最开始列不变,阶梯逼近左下的方法
  BlackTopLeftToBottomRight_Line(BoardSize, board);
//  自左上--->右下判断黑棋,每次第二个for循环最开始行不变,阶梯逼近右上的方法
  BlackTopLeftToBottomRight_Row(BoardSize, board);
//  自右上--->左下判断黑棋,每次第二个for循环最开始列不变,阶梯逼近右下的方法
  BlackTopRightToBottomLeft_Line(BoardSize, board);
//  自右上--->左下判断黑棋,每次第二个for循环最开始行不变,阶梯逼近左上的方法
  BlackTopRightToBottomLeft_Row(BoardSize, board);

//  白棋落子
  System.out.println("白棋落子");
  WhiteMoveLater(board);
//  每下一步白棋要输出一下棋盘
  PrintBoard(board);

//  行判断白棋
  WhiteRow(BoardSize, board);
//  列判断白棋
  WhiteLine(BoardSize, board);
//  自左上--->右下判断白棋,每次第二个for循环最开始列不变,阶梯逼近左下的方法
  WhiteTopLeftToBottomRight_Line(BoardSize, board);
//  自左上--->右下判断白棋,每次第二个for循环最开始行不变,阶梯逼近右上的方法
  WhiteTopLeftToBottomRight_Row(BoardSize, board);
//  自右上--->左下判断白棋,每次第二个for循环最开始列不变,阶梯逼近右下的方法
  WhiteTopRightToBottomLeft_Line(BoardSize, board);
//  自右上--->左下判断白棋,每次第二个for循环最开始行不变,阶梯逼近左上的方法
  WhiteTopRightToBottomLeft_Row(BoardSize, board);
  }
 }

下面是实现的方法

//实现棋盘输出的方法
 public static void PrintBoard(String[][] board) {
   for (int i = 0; i < board.length; i++) {
    for (int j = 0; j < board[i].length; j++) {
     System.out.print( board[i][j]+" ");
    }
    System.out.println();
   }
  }

实现黑棋落子

// 实现黑棋落子的方法
 public static void BlackMoveLater(String[][] board) {
  while(true) {
  Scanner sc1=new Scanner(System.in);
  System.out.println("请输入黑棋落子的横坐标[1---20]:");
  int BlackBoard_x=sc1.nextInt();
  //判断横坐标是否数组越界
  if(BlackBoard_x<1 || BlackBoard_x>20) {
   System.out.println("你输入的坐标范围有误 ,横坐标取1到20,请正确输入:\n");
   continue;
  }
  Scanner sc2=new Scanner(System.in);
  System.out.println("请输入黑棋落子的纵坐标[1---20]:");
  int BlackBoard_y=sc2.nextInt();
  //判断纵坐标是否数组越界
  if(BlackBoard_y<1 || BlackBoard_y>20) {
   System.out.println("你输入的坐标范围有误,纵坐标取1到20,请正确输入:\n");
   continue;
  }
  //判断此位置是否可以落入棋子
  if(board[BlackBoard_x-1][BlackBoard_y-1]=="○") {
   System.out.println("此位置已经有棋子了,请你将棋子下到空位置");
   continue;
  }else {
    board[BlackBoard_x-1][BlackBoard_y-1]="●";
    break;
  }
  }
 }

实现白棋落子

// 实现白棋落子的方法
 public static void WhiteMoveLater(String[][] board) {
  while(true) {
  Scanner sc1=new Scanner(System.in);
  System.out.println("请输入白棋落子的横坐标[1---20]:");
  int WhiteBoard_x=sc1.nextInt();
  //判断横坐标是否数组越界
  if(WhiteBoard_x<1 || WhiteBoard_x>20) {
   System.out.println("你输入的坐标范围有误 ,横坐标取1到20,请正确输入:\n");
   continue;
   }
  Scanner sc2=new Scanner(System.in);
  System.out.println("请输入白棋落子的纵坐标[1---20]:");
  int WhiteBoard_y=sc2.nextInt();
  //判断纵坐标是否数组越界
  if(WhiteBoard_y<1 || WhiteBoard_y>20) {
   System.out.println("你输入的坐标范围有误,纵坐标取1到20,请正确输入:\n");
   continue;
   }
  //判断此位置是否可以落入棋子
  if(board[WhiteBoard_x-1][WhiteBoard_y-1]=="●") {
   System.out.println("此位置已经有棋子了,请你将棋子下到空位置\n");
   continue;
  }else {
   board[WhiteBoard_x-1][WhiteBoard_y-1]="○";
   break;
  }
  }
 }

判定输赢以黑棋为例(有六个方法),下面一一列举

// 实现行判断黑棋子
 public static void BlackRow(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  一行一行的读取数组中的元素
  for(int row=0;row<BoardSize;row++) {
   for(int line=0;line<BoardSize;line++) {
//    如果此行中有元素为黑棋则number+1
    if(board[row][line]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此行中虽有五个黑棋但是并不相连,不能说是黑棋方胜,需将number置为0
    if(board[row][line]=="○"|| board[row][line]=="+") {
     number=0;
    }
   }
//   每一行读取数组元素后未能分出胜负需要将number置为0
   number=0;
  }
 }

展现第一个方法的结果

第二个方法代码

// 实现列判断黑棋子
 public static void BlackLine(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  一列一列的读取数组中的元素
  for(int Line=0;Line<BoardSize;Line++) {
   for(int row=0;row<BoardSize;row++) {
//    如果此列中有元素为黑棋则number+1
    if(board[row][Line]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( Line = 0; Line < board[row].length; Line++) {
          System.out.print( board[row][Line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此列中虽有五个黑棋但是并不相连,不能说是黑棋方胜,需将number置为0
    if(board[row][Line]=="○"|| board[row][Line]=="+") {
     number=0;
    }
   }
//   每一列读取数组元素后未能分出胜负需要将number置为0
   number=0;
  }
 }

展现第二个方法的结果

第三个方法代码

// 实现自左上--->右下判断黑棋,每次第二个for循环最开始列不变,阶梯逼近左下的方法
 public static void BlackTopLeftToBottomRight_Line(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候列line总是从0开始
  for(int row=0;row<BoardSize;row++) {
//   执行这个for循环的时候每一次行+1,列+1,数据元素呈现阶梯分布,阶梯逼近左下
   for(int line=0,i=row;line<BoardSize-row;line++,i++) {
//    如果此阶梯中有元素为黑棋则number+1
    if(board[i][line]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[i].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个黑棋但是并不相连,不能说是黑方胜,需将number置为0
    if(board[i][line]=="○"|| board[i][line]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }

展现第三种方法的结果

第四个方法代码

// 实现自左上--->右下判断黑棋,每次第二个for循环最开始行不变,阶梯逼近右上的方法
 public static void BlackTopLeftToBottomRight_Row(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候行row总是从0开始
  for(int line=0;line<BoardSize;line++) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近右上
   for(int row=0,i=line;row<BoardSize-line;row++,i++) {
//    如果此阶梯中有元素为黑棋则number+1
    if(board[row][i]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个黑棋但是并不相连,不能说是黑方胜,需将number置为0
    if(board[row][i]=="○"|| board[row][i]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }

第四个方法结果展示

第五个方法的代码

// 实现自右上--->左下判断黑棋,每次第二个for循环最开始列不变,阶梯逼近右下的方法
 public static void BlackTopRightToBottomLeft_Line(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候列line总是从最后一列开始
  for(int row=0;row<BoardSize;row++) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近右下
   for(int line=BoardSize-1,i=row;line>=0+row;line--,i++) {
//    如果此阶梯中有元素为黑棋则number+1
    if(board[i][line]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个黑棋但是并不相连,不能说是黑方胜,需将number置为0
    if(board[i][line]=="○"|| board[i][line]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }

第五个方法结果展示

第六个方法的代码

// 实现自右上--->左下判断黑棋,每次第二个for循环最开始行不变,阶梯逼近左上的方法
 public static void BlackTopRightToBottomLeft_Row(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候行row总是从最后一列开始
  for(int line=BoardSize-1;line>=0;line--) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近左上
   for(int row=0,j=line;row<line;j--,row++) {
//    如果此阶梯中有元素为黑棋则number+1
    if(board[row][j]=="●") {
     number++;
    }
//    当number为5的时候则黑棋一方的胜
    while(number==5) {
     System.out.println("黑棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个黑棋但是并不相连,不能说是黑方胜,需将number置为0
    if(board[row][j]=="○"|| board[row][j]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }

第六个方法结果展示

后面是白棋的判断方法的代码,与黑棋一样

// 实现行判断白棋
 public static void WhiteRow(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  一行一行的读取数组中的元素
  for(int row=0;row<BoardSize;row++) {
   for(int line=0;line<BoardSize;line++) {
//    如果此行中有元素为白棋则number+1
    if(board[row][line]=="○") {
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此行中虽有五个白棋但是并不相连,不能说是白棋方胜,需将number置为0
    if(board[row][line]=="●"|| board[row][line]=="+") {
     number=0;
    }
   }
//   每一行读取数组元素后未能分出胜负需要将number置为0
   number=0;
  }
 }
// 实现列判断白棋
 public static void WhiteLine(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  一列一列的读取数组中的元素
  for(int line=0;line<BoardSize;line++) {
   for(int row=0;row<BoardSize;row++) {
//    如果此列中有元素为白棋则number+1
    if(board[row][line]=="○") {
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此列中虽有五个白棋但是并不相连,不能说是白棋方胜,需将number置为0
    if(board[row][line]=="●"|| board[row][line]=="+") {
     number=0;
    }
   }
//   每一列读取数组元素后未能分出胜负需要将number置为0
   number=0;
  }
 }
// 实现自左上--->右下判断白棋,每次第二个for循环最开始列不变,阶梯逼近左下的方法
 public static void WhiteTopLeftToBottomRight_Line(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候列line总是从0开始
  for(int row=0;row<BoardSize;row++) {
//   执行这个for循环的时候每一次行+1,列+1,数据元素呈现阶梯分布,阶梯逼近左下
   for(int line=0,i=row;line<BoardSize-row;line++,i++) {
//    如果此阶梯中有元素为白棋则number+1
    if(board[i][line]=="○") {
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[i].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个白棋但是并不相连,不能说是黑白方胜,需将number置为0
    if(board[i][line]=="●"|| board[i][line]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }
// 实现自左上--->右下判断白棋,每次第二个for循环最开始行不变,阶梯逼近右上的方法
 public static void WhiteTopLeftToBottomRight_Row(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候行row总是从0开始
  for(int line=0;line<BoardSize;line++) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近右上
   for( int row=0,i=line;row<BoardSize-line;row++,i++) {
//    如果此阶梯中有元素为白棋则number+1
    if(board[row][i]=="○") {
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个白棋但是并不相连,不能说是白方胜,需将number置为0
    if(board[row][i]=="●"|| board[row][i]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }
// 实现自右上--->左下判断白棋,每次第二个for循环最开始列不变,阶梯逼近右下的方法
 public static void WhiteTopRightToBottomLeft_Line(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候列line总是从最后一列开始
  for(int row=0;row<BoardSize;row++) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近右下
   for(int line=BoardSize-1,i=row;line>=0+row;line--,i++) {
    if(board[i][line]=="○") {
//     如果此阶梯中有元素为白棋则number+1
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0; row < board.length; row++) {
         for ( line = 0; line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个白棋但是并不相连,不能说是白方胜,需将number置为0
    if(board[i][line]=="●"|| board[i][line]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }
// 实现自右上--->左下判断白棋,每次第二个for循环最开始行不变,阶梯逼近左上的方法
 public static void WhiteTopRightToBottomLeft_Row(int BoardSize, String[][] board) {
//  先定义一个数number,以此来计数
  int number=0;
//  每当执行第二个for循环的时候行row总是从最后一列开始
  for(int line=BoardSize-1;line>=0;line--) {
//   执行这个for循环的时候每一次列+1,行+1,数据元素呈现阶梯分布,阶梯逼近左上
   for(int row=0,j=line;row<line;j--,row++) {
//    如果此阶梯中有元素为白棋则number+1
    if(board[row][j]=="○") {
     number++;
    }
//    当number为5的时候则白棋一方的胜
    while(number==5) {
     System.out.println("白棋方胜!");
        //胜出后输出棋盘
        for ( row = 0;row < board.length; row++) {
         for ( line = 0;line < board[row].length; line++) {
          System.out.print( board[row][line]+" ");
         }
         System.out.println();
        }
        //胜后退出系统
        System.exit(0);
    }
//    如果此阶梯中虽有五个白棋但是并不相连,不能说是白方胜,需将number置为0
    if(board[row][j]=="●"|| board[row][j]=="+") {
     number=0;
    }
   }
//   每当第二个for循环完毕后需要将number置为0
   number=0;
  }
 }
}

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

(0)

相关推荐

  • java基于swing实现的五子棋游戏代码

    本文实例讲述了java基于swing实现的五子棋游戏代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Main extends JFrame implements ActionListener{         private static final long serialVersionUID = 1L;      

  • java实现单机版五子棋

    这个小游戏是我和我姐们儿的JAVA课程设计,也是我做的第一个JAVA项目,适合初学者,希望能帮到那些被JAVA课设所困扰的孩纸们~~~ 一.该游戏需要实现 1.设计主框架,界面. 2.利用ActionListener接口实现按钮事件的监听. 3.重新开始功能的实现. 4.悔棋功能的实现. 5.退出功能的实现. 6.棋盘中棋子点类的定义. 7.利用MouseListener接口实现事件监听,并实现接口里的所有方法. 8.当鼠标移动到棋盘上的交点上,且该点上无棋子时能够变成小手形状. 9.点击棋盘时

  • java实现单人版五子棋游戏

    本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 package gyb.exam; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Point; import java.awt.Toolkit; import java.awt.

  • Java棋类游戏实践之单机版五子棋

    本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 一.实践目标        1.掌握JavaGUI界面设计        2.掌握鼠标事件的监听(MouseListener,MouseMotionListener) 二.实践内容       设计一个简单的五子棋程序,能够实现五子棋下棋过程.如下图所示 1.五子棋棋盘类 package cn.edu.ouc.fiveChess; import java.awt.Color; import java.awt.Curs

  • Java实现两人五子棋游戏(二) 画出棋盘

    本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这张图片. DrawChessBoard.java package xchen.test.simpleGobang; import java.awt.Graphics; import java.awt.Image; impor

  • Java编程实现五子棋人人对战代码示例

    利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识.w表示白棋,b表示黑棋 import java.util.Scanner; public class MainMethod { public static char[][] c = new char[10][10]; public static void main(String[] args) { MainMethod mainMethod = new MainMethod(); mainMethod.init()

  • java实现五子棋小游戏

    java实现五子棋小游戏 package Gomoku; import java.awt.Toolkit; import javax.swing.JFrame; public class GomokuFrame extends JFrame { //定义一个操作面板 OperatorPane op=null; public GomokuFrame() { //设置名称 this.setTitle("五子棋"); //设置窗口大小 this.setSize(510,510); //设置窗

  • Java实现两人五子棋游戏(三) 画出棋子

    上一篇文章讲的是Java实现两人五子棋游戏(二) 画出棋盘,已经画好棋盘,接下来要实现控制功能,主要功能: 1)选择棋子 2)画棋子 3)判断胜负 4)交换行棋方 先实现画棋子PART -------------画棋子代码示例如下-------------- 首先,定义一个棋子类,这个类有两个属性,棋子颜色(0-表示黑色,1-表示白色),是否落子(我计划用一个二维数组才存储棋子的落子信息) Chessman.java package xchen.test.simpleGobang; public

  • Java实现五子棋AI算法

    五子棋AI算法 也算是一个典型的游戏AI算法,一些棋类的AI算法都可以参考实现,下面是Java实现代码 棋盘抽象接口 import java.util.List; public interface IChessboard { //取得棋盘最大横坐标 public int getMaxX(); //最大纵坐标 public int getMaxY(); //取得当前所有空白点,这些点才可以下棋 public List<Point> getFreePoints(); } 棋子类实现 //棋子类 p

  • Java实现五子棋网络版

    本文实例为大家分享了Java实现五子棋网络版的具体代码,供大家参考,具体内容如下 需求分析: 对于网络五子棋而言,在普通五子棋的基础上需要添加以下功能: 1.拥有服务器端和客户端,用户通过客户端登录服务器后可与其他登录的用户进行对弈 2.服务器支持多组用户同时进行对弈 3.用户可以在服务器上创建新游戏或加入已创建的游戏 4.用户在下棋的时候可以进行聊天交流 由上可以知道需要实现的功能: ·提供服务器和客户端的功能 ·服务器将监听客户端的登录情况并允许多个客户端进行登录 ·用户通过客户端可以登录服

随机推荐