Java實現簡單的五子棋小遊戲
阿新 • • 發佈:2020-10-22
五子棋遊戲(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經典小遊戲彙總
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。