1. 程式人生 > 程式設計 >Java實現簡單的五子棋小遊戲

Java實現簡單的五子棋小遊戲

五子棋遊戲(Java),供大家參考,具體內容如下

思路:

1.首先建立一個棋盤,建立一個二維陣列,此文中為一個15*15的二維陣列,
2.初始化棋盤,給棋盤上個點賦初始值為“+”;
3.列印棋盤;
4.開始遊戲
建立一個下棋的函式(playChess),黑方棋子為“●”,白方棋子為“○”,用奇偶數分別代表黑方和白方;判斷輸贏,有5個連續一樣的棋子即為贏,遊戲結束

五個棋子連續條件

本來需要判斷8個方向的棋子,但由於棋子沒有方向,頭尾可調換,所以只要使得有四個方向的棋子5個連續就可以,這四個方向分別為:右邊、右上、右下、下邊(其他對應方向也可以),如下圖所示。

Java實現簡單的五子棋小遊戲

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經典小遊戲彙總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。