五子棋遊戲(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] = "+";
}
}
}
}
相關文章
- 五子棋javaJava
- Java實現五子棋對戰小遊戲【完整版】Java遊戲
- JS之五子棋遊戲JS遊戲
- Java做的五子棋Java
- 安卓開發 五子棋遊戲安卓遊戲
- C語言五子棋小遊戲C語言遊戲
- java簡單練習-五子棋Java
- PyGame每日一練——五子棋小遊戲GAM遊戲
- 結對專案之五子棋遊戲遊戲
- 基於 Blazor 開發五子棋⚫⚪小遊戲Blazor遊戲
- Python:遊戲:五子棋之人機對戰Python遊戲
- C語言實現小遊戲:五子棋C語言遊戲
- 我眼中的五子棋遊戲開發遊戲開發
- 原生JS+Canvas實現五子棋遊戲JSCanvas遊戲
- Java簡單實現無介面五子棋Java
- SCO、Linux下的shell五子棋小遊戲(轉)Linux遊戲
- Java學習筆記(七):五子棋AI演算法Java筆記AI演算法
- 16×16大小棋盤的五子棋小程式 Java實現Java
- JavaScript五子棋效果JavaScript
- iOS-五子棋iOS
- js五子棋效果JS
- 【Demo見真章】基於HarmonyOS手機實現五子棋對戰小遊戲遊戲
- python 五子棋原始碼Python原始碼
- 使用原生 JS 寫五子棋JS
- 結對專案——五子棋
- 結對專案 五子棋
- Android小遊戲——簡單易懂單機人人對戰五子棋原始碼詳解Android遊戲原始碼
- Java小遊戲Java遊戲
- 五子棋AI演算法(一)AI演算法
- 前端談談實現五子棋前端
- C++物件導向五子棋C++物件
- BetaMeow:利用機器學習做五子棋AI機器學習AI
- 五子棋畫布-我的理解
- 藉助實時資料推送快速製作線上對戰五子棋小遊戲丨實戰遊戲
- 基於Flutter製作的五子棋Flutter
- 【Java遊戲】java俄羅斯方塊!Java遊戲
- 程式設計師大神,C語言程式設計製作不一樣的五子棋小遊戲程式設計師C語言遊戲
- python 五子棋原始碼 V2Python原始碼