五子棋遊戲(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] = "+";
}
}
}
}
相關文章
- JS之五子棋遊戲JS遊戲
- Java實現五子棋對戰小遊戲【完整版】Java遊戲
- C語言五子棋小遊戲C語言遊戲
- 安卓開發 五子棋遊戲安卓遊戲
- Python:遊戲:五子棋之人機對戰Python遊戲
- PyGame每日一練——五子棋小遊戲GAM遊戲
- 五子棋javaJava
- 基於 Blazor 開發五子棋⚫⚪小遊戲Blazor遊戲
- C語言實現小遊戲:五子棋C語言遊戲
- Java小遊戲Java遊戲
- java簡單練習-五子棋Java
- 【Demo見真章】基於HarmonyOS手機實現五子棋對戰小遊戲遊戲
- Java簡單實現無介面五子棋Java
- Java Swing坦克小遊戲Java遊戲
- 【Java】——猜數字遊戲Java遊戲
- 【Java遊戲】java俄羅斯方塊!Java遊戲
- Java入門----猜拳小遊戲Java遊戲
- Java遊戲開發——連連看Java遊戲開發
- Java小遊戲——飛機大戰Java遊戲
- Java學習筆記(七):五子棋AI演算法Java筆記AI演算法
- 藉助實時資料推送快速製作線上對戰五子棋小遊戲丨實戰遊戲
- Java寫的鬥地主遊戲原始碼Java遊戲原始碼
- 以遊戲化的方式學習Java遊戲Java
- java程式:簡易撲克牌遊戲Java遊戲
- Java實現飛機大戰遊戲Java遊戲
- js五子棋效果JS
- 遊戲伺服器中JAVA的應用遊戲伺服器Java
- LeetCode 299 猜數字遊戲 Java實現LeetCode遊戲Java
- Java學習筆記(一) 猜數遊戲Java筆記遊戲
- 如何建立一個Java遊戲客戶端Java遊戲客戶端
- 逆水寒五子棋怎麼玩?逆水寒五子棋玩法攻略
- java遊戲開發雜談 - java程式設計怎麼學Java遊戲開發程式設計
- 【Java基礎教程】用Java實現猜數字小遊戲Java遊戲
- “反遊戲“的遊戲——放置遊戲研究遊戲
- 16×16大小棋盤的五子棋小程式 Java實現Java
- python 五子棋原始碼Python原始碼
- java練習-任務1.2-對戰遊戲Java遊戲
- java實現人機猜拳遊戲的程式碼Java遊戲