欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)簡單的五子棋小游戲

 更新時間:2020年10月22日 17:00:56   作者:¿ω¿  
這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單的五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

五子棋游戲(Java),供大家參考,具體內(nèi)容如下

思路:

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

五個棋子連續(xù)條件

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

import java.util.Scanner;

public class Demo01WuZiQi {
 //1.創(chuàng)建一個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] = "+";
  }
 }
 }
}

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

java經(jīng)典小游戲匯總

javascript經(jīng)典小游戲匯總

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于Java中static關(guān)鍵字的用法

    關(guān)于Java中static關(guān)鍵字的用法

    這篇文章主要介紹了關(guān)于Java中static關(guān)鍵字的用法,static:意為靜態(tài)的,在?Java?里面作為靜態(tài)修飾符,可以理解為全局的意思,static?不僅可以修飾成員變量,成員方法,還可以修飾代碼塊,需要的朋友可以參考下
    2023-08-08
  • java:?無效的目標發(fā)行版:?20問題解決辦法

    java:?無效的目標發(fā)行版:?20問題解決辦法

    這篇文章主要給大家介紹了關(guān)于java:?無效的目標發(fā)行版:?20問題的解決辦法,出現(xiàn)這個問題大多數(shù)是因為自己安裝的jdk版本和你在運行項目時的所選的jdk版本不一致所導致的,需要的朋友可以參考下
    2024-03-03
  • Spring實現(xiàn)郵件發(fā)送功能

    Spring實現(xiàn)郵件發(fā)送功能

    這篇文章主要為大家詳細介紹了Spring實現(xiàn)郵件發(fā)送功能,簡單的發(fā)送郵件工具JavaMailSender使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 詳解Java多線程tryLock()方法使用

    詳解Java多線程tryLock()方法使用

    本文主要介紹了Java多線程tryLock()方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java過濾器模式原理及用法實例

    Java過濾器模式原理及用法實例

    這篇文章主要介紹了Java過濾器模式原理及用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Spring Boot 中的 SockJS原理及使用方法

    Spring Boot 中的 SockJS原理及使用方法

    SockJS 的主要作用是提供一種 WebSocket 的兼容性解決方案,使得不支持 WebSocket 的瀏覽器也可以使用 WebSocket,本文介紹了Spring Boot中的SockJS,包括SockJS的原理,使用方法和示例代碼,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • java之函數(shù)式接口解讀

    java之函數(shù)式接口解讀

    這篇文章主要介紹了java之函數(shù)式接口,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java回調(diào)函數(shù)與觀察者模式實例代碼

    Java回調(diào)函數(shù)與觀察者模式實例代碼

    這篇文章主要介紹了Java回調(diào)函數(shù)與觀察者模式實例代碼,簡單介紹了使用觀察者模式的場景,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java實現(xiàn)郵箱發(fā)送功能實例(阿里云郵箱推送)

    Java實現(xiàn)郵箱發(fā)送功能實例(阿里云郵箱推送)

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)郵箱發(fā)送功能的相關(guān)資料,利用阿里云郵箱推送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • SpringBoot過濾器的使用

    SpringBoot過濾器的使用

    過濾器是對數(shù)據(jù)進行過濾,預處理過程,當我們訪問網(wǎng)站時,有時候會發(fā)布一些敏感信息,發(fā)完以后有的會用*替代,還有就是登陸權(quán)限控制等,一個資源,沒有經(jīng)過授權(quán),肯定是不能讓用戶隨便訪問的,這個時候,也可以用到過濾器,需要的朋友可以參考一下
    2021-11-11

最新評論