网站地图    收藏   

主页 > 后端 > java >

Java实现简单的五子棋小游戏

来源:自学PHP网    时间:2020-10-22 09:45 作者:小飞侠 阅读:

[导读] Java实现简单的五子棋小游戏...

今天带来Java实现简单的五子棋小游戏教程详解

五子棋游戏(Java),供大家参考,具体内容如下

思路:

1.首先创建一个棋盘,建立一个二维数组,此文中为一个15*15的二维数组,
2.初始化棋盘,给棋盘上个点赋初始值为“+”;
3.打印棋盘;
4.开始游戏
创建一个下棋的函数(playChess),黑方棋子为“●”,白方棋子为“○”,用奇偶数分别代表黑方和白方;判断输赢,有5个连续一样的棋子即为赢,游戏结束

五个棋子连续条件

本来需要判断8个方向的棋子,但由于棋子没有方向,头尾可调换,所以只要使得有四个方向的棋子5个连续就可以,这四个方向分别为:右边、右上、右下、下边(其他对应方向也可以),如下图所示。

import java.util.Scanner;

public class Demo01WuZiQi {
 //1.创建一个15*15的棋盘
 public static String[][] board = new String[15][15];
 public static Scanner scanner = new Scanner(System.in);
 public static int player = 0;

 public static void main(String[] args) {
  //2.初始化棋盘
  initBoard();
  //3.打印棋盘
  printBoard();
  //4.开始游戏
  startGame();
 }

 private static void startGame() {
  while (!isGameOver()) {
   if (player % 2 == 0) { //黑方下棋
    System.out.println(">>>请黑方下棋");
    playChess("●");
   } else {    //白方下棋
    System.out.println(">>>请白方下棋");
    playChess("○");
   }
   player++;
  }
  System.out.println("Game Over");
 }

 private static boolean isGameOver() {
  for (int x = 0; x < board.length; x++) {
   for (int y = 0; y < board[x].length; y++) {
    if(!board[x][y].equals("+")){
     //向右
     if (y < 11) {
      if(board[x][y].equals(board[x][y+1])
        && board[x][y].equals(board[x][y+2])
        && board[x][y].equals(board[x][y+3])
        && board[x][y].equals(board[x][y+4]))
      {
       return true;
      }
     }

     //向下
     if (x < 11) {
      if(board[x][y].equals(board[x+1][y])
        && board[x][y].equals(board[x+2][y])
        && board[x][y].equals(board[x+3][y])
        && board[x][y].equals(board[x+4][y]))
      {
       return true;
      }
     }

     //向右下
     if (x < 11 && y < 11) {
      if(board[x][y].equals(board[x+1][y+1])
        && board[x][y].equals(board[x+2][y+2])
        && board[x][y].equals(board[x+3][y+3])
        && board[x][y].equals(board[x+4][y+4]))
      {
       return true;
      }
     }

     //向右上
     if (x > 3 && y < 11) {
      if(board[x][y].equals(board[x-1][y+1])
        && board[x][y].equals(board[x-2][y+2])
        && board[x][y].equals(board[x-3][y+3])
        && board[x][y].equals(board[x-4][y+4]))
      {
       return true;
      }
     }
    }
   }
  }
  return false;
 }

 private static void playChess(String chess) {
  System.out.print(">>>请输入棋子的坐标:");
  int x = scanner.nextInt() - 1;
  int y = scanner.nextInt() - 1;
  if (board[x][y].equals("+")) {
   board[x][y] = chess;
   printBoard();
  } else {
   System.out.println(">>>此处已有棋子,请重新输入");
   player--;
  }
 }

 public static void printBoard() {
  System.out.print(" ");
  //打印列号
  for (int i = 1; i <= board.length; i++) {
   System.out.printf("%-3d",i);
  }
  System.out.println();
  for (int i = 0; i < board.length; i++) {
   //打印行号
   System.out.printf("%-3d", i + 1);
   //打印每一行的棋盘
   for (int j = 0; j < board[i].length; j++) {
    System.out.print(board[i][j] + " ");
   }
   System.out.println();
  }
 }

 public static void initBoard() {
  for (int i = 0; i < board.length; i++) {
   for (int j = 0; j < board[i].length; j++) {
    board[i][j] = "+";
   }
  }
 }
}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

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


以上就是关于Java实现简单的五子棋小游戏全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论