求一个简单的JAVA五子棋代码!! 网上复制的别来了!

能用就好越简单越好!!chenping8810@163.com3楼那大哥你的那个没界面...要界面的简陋的也没关系... 能用就好 越简单越好!!
chenping8810@163.com

3楼那大哥 你的那个没界面...要界面的 简陋的也没关系
展开
 我来答
angle01007
推荐于2017-12-15 · TA获得超过753个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:187万
展开全部
  以下是现写的 实现了两人对战 自己复制后运行把 没什么难度 类名 Games

  import java.util.Scanner;

  public class Games {

  private String board[][];
  private static int SIZE = 17;
  private static String roles = "A玩家";
  //初始化数组
  public void initBoard() {
  board = new String[SIZE][SIZE];
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  // if(i==0){
  // String str = "";
  // str += j+" ";
  // board[i][j]= str;
  // }else if(i!=0&&j==0){
  // String str = "";
  // str += i+" ";
  // board[i][j]= str;
  // }else{
  board[i][j] = "╋";
  // }
  }
  }
  }
  //输出棋盘
  public void printBoard() {
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  System.out.print(board[i][j]);
  }
  System.out.println();
  }
  }
  //判断所下棋子位置是否合理
  public boolean isOk(int x, int y) {
  boolean isRight = true;
  if (x >= 16 || x < 1 || y >= 16 | y < 1) {
  //System.out.println("输入错误,请从新输入");
  isRight = false;
  }
  if (board[x][y].equals("●") || board[x][y].equals("○")) {
  isRight = false;
  }
  return isRight;
  }
  //判断谁赢了
  public void whoWin(Games wz) {
  // 从数组挨个查找找到某个类型的棋子就从该棋子位置向右,向下,斜向右下 各查找5连续的位置看是否为5个相同的
  int xlabel;// 记录第一次找到某个棋子的x坐标
  int ylabel;// 记录第一次找到某个棋子的y坐标
  // ●○╋
  // 判断人是否赢了
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  if (board[i][j].equals("○")) {
  xlabel = i;
  ylabel = j;
  // 横向找 x坐标不变 y坐标以此加1连成字符串
  String heng = "";
  if (i + 5 < SIZE && j + 5 < SIZE) {
  for (int k = j; k < j + 5; k++) {
  heng += board[i][k];
  }
  if (heng.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 向下判断y不变 x逐增5 连成字符串
  String xia = "";
  for (int l = j; l < i + 5; l++) {
  xia += board[l][j];
  // System.out.println(xia);
  }
  if (xia.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 斜向右下判断
  String youxia = "";
  for (int a = 1; a <= 5; a++) {
  youxia += board[xlabel++][ylabel++];
  }
  if (youxia.equals("○○○○○")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  }
  }
  }
  }
  // 判断电脑是否赢了
  for (int i = 0; i < SIZE; i++) {
  for (int j = 0; j < SIZE; j++) {
  if (board[i][j].equals("●")) {
  xlabel = i;
  ylabel = j;

  // 横向找 x坐标不变 y坐标以此加1连成字符串
  String heng = "";
  if (j + 5 < SIZE && i + 5 < SIZE) {
  for (int k = j; k < j + 5; k++) {
  heng += board[i][k];
  }
  if (heng.equals("●●●●●")) {
  System.out.println(roles+"赢输了!您输了!");
  System.exit(0);
  }
  // 向下判断y不变 x逐增5 连成字符串
  String xia = "";
  for (int l = i; l < i + 5; l++) {
  xia += board[l][ylabel];
  // System.out.println(xia);
  }
  if (xia.equals("●●●●●")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  // 斜向右下判断
  String youxia = "";
  for (int a = 1; a <= 5; a++) {
  youxia += board[xlabel++][ylabel++];
  }
  if (youxia.equals("●●●●●")) {
  System.out.println(roles+"赢了!您输了!");
  System.exit(0);
  }
  }
  }
  }
  }
  }
  public static void main(String[] args) {
  Games wz = new Games();
  Scanner sc = new Scanner(System.in);
  wz.initBoard();
  wz.printBoard();

  while (true) {
  System.out.print("请"+roles+"输入X,Y坐标,必须在0-15范围内,xy以空格隔开,输入16 16结束程序");
  int x = sc.nextInt();
  int y = sc.nextInt();
  if (x == SIZE && y == SIZE) {
  System.out.println("程序结束");
  System.exit(0);
  }
  if (x > SIZE || x < 0 || y > SIZE | y < 0) {
  System.out.println("输入错误,请从新输入");
  continue;
  }
  //如果roles是A玩家 就让A玩家下棋,否则就让B玩家下棋。
  if (wz.board[x][y].equals("╋")&&roles.equals("A玩家")) {
  wz.board[x][y] = "○";
  wz.printBoard();
  //判断输赢
  wz.whoWin(wz);
  }else if(wz.board[x][y].equals("╋")&&roles.equals("B玩家")){
  wz.board[x][y] = "●";
  wz.printBoard();
  //判断输赢
  wz.whoWin(wz);
  } else {
  System.out.println("此处已经有棋子,从新输入");
  continue;
  }
  if(roles.equals("A玩家")){
  roles = "B玩家";
  }else if(roles.equals("B玩家")){
  roles = "A玩家";
  }
  }

  }

  }
jiaojiao198943
2010-10-17
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
我有一个,刚刚做的。可以实现人机对战,人人对战,悔棋,禁手等操作。机器方主要采用的是a-b剪枝算法。功能很强大,代码很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
员睿a5
2010-10-17
知道答主
回答量:8
采纳率:0%
帮助的人:1.4万
展开全部
buh hiyhu

参考资料: ejriuo

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式