亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java控制臺版實現五子棋游戲

瀏覽:3日期:2022-08-19 08:50:59

控制臺實現五子棋游戲,供大家參考,具體內容如下

控制臺打印棋盤 編寫兩人對弈的五子棋游戲,游戲規則:黑白雙方有一方首先實現五子連續,則獲勝,游戲結束。

java控制臺版實現五子棋游戲

代碼:

import java.util.Scanner;public class Wuziqi { //自定義二維數組來描述棋盤,默認初始值為0 int[][] chessBoard = new int[16][16]; //自定義成員方法來繪制棋盤 void paint(){ //1.先繪制棋盤中第一行的坐標信息,也就是列坐標信息 for (int i = 0; i < 17; i++) { if( 0 == i){System.out.println(' '); }else {//按照16進制打印i-1的數值System.out.printf('%x ' , i - 1); } } System.out.println(); //2.繪制棋盤中除了第一行之外的其他部分以及行坐標信息 for (int i = 0; i < 16; i++) { //用于打印行坐標信息 System.out.printf('%x ', i); for (int j = 0; j < 16; j++) {//剛開始棋盤中所有內容都是+ , 因此直接打印if (0 == chessBoard[i][j]){ System.out.print('+ ');} else if (1 == chessBoard[i][j]){ System.out.print('● ');}else { System.out.print('○ ');} } //打印完一行的所有內容之后進行換行 System.out.println(); } } //自定義成員方法來提示黑方和白方分別下棋 void play(){ //定義標志位來進行黑方和白方的切換,true代表黑方,false代表白方 boolean flag = true; //不斷地分別提示黑方和白方下棋 while(true){ System.out.println('請' + (flag ? '黑方' : '白方') + '輸入落子坐標(x,y):'); Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); //根據用戶輸入的坐標來調整棋盤中的圖案,策略為改變數值的元素值, //當黑子落子時就將數組中對應的元素值改為1,當白方落子時就將數組中對應的元素改為2 chessBoard[x][y] = (flag ? 1 : 2); //重新繪制圖案 paint(); //判斷當前方是否勝利,若勝利就結束游戲 if (Success(x, y)) {System.out.println('恭喜' + (flag ? '黑方' : '白方') + '勝利了!');break; } // 此時切換下棋方 flag = !flag; } } //自定義成員方法來判斷用戶是否獲勝,獲勝的規則時:任意相同顏色的5個棋子連成一條線 boolean Success(int x, int y){ //1.判斷豎向是否連成一線,則需要以該點為中心向上四個點向下四個點 //聲明變量來統計豎向相同顏色棋子的個數,先統計向上同色棋子的個數 //先統計向上顏色相同的個數 int count = 1; for (int i = x - 1; i >= 0; i--) { //若當前點代表的棋子與上述某個點代表的棋子不一樣,則向上統計結束 if (chessBoard[x][y] != chessBoard[i][y]){break; } count++; } //再統計向下顏色相同的個數 for (int i = x + 1; i < chessBoard.length; i++) { if (chessBoard[x][y] != chessBoard[i][y]){break; } count++; } if (5 == count){ return true; } //2.判斷橫向是否連成一條線,則需要以該店為中心向左四個點向右四個點 count = 1; //先統計向左顏色相同的個數 for (int j = y - 1; j >= 0; j--) { //若當前點代表的棋子與上述某個點代碼的棋子不一樣,則向上統計結束 if (chessBoard[x][y] != chessBoard[x][j]) {break; } count++; } //再統計向右顏色相同的個數 for (int j = y + 1; j < chessBoard.length; j++) { if(chessBoard[x][y] != chessBoard[x][j]){break; } count++; } if (5 == count){ return true; } // 3.判斷左上到右下是否連成一線,則需要以該點為中心向左上四個點向右下四個點 count = 1; // 先統計左上顏色相同的個數 for (int i = x-1, j = y - 1; i >= 0 && j >= 0; i--, j--) { // 若當前點代表的棋子與上述某個點代表的棋子不一樣,則向上統計結束 if (chessBoard[x][y] != chessBoard[i][j]) {break; } count++; } // 再統計右下顏色相同的個數 for (int i = x+1, j = y + 1; i <= 15 && j <= 15; i++, j++) { if (chessBoard[x][y] != chessBoard[i][j]) {break; } count++; } if (5 == count) { return true; } // 4.判斷右上到左下是否連成一線,則需要以該點為中心向右上四個點向左下四個點 count = 1; // 先統計右上顏色相同的個數 for (int i = x-1, j = y + 1; i >= 0 && j <= 15; i--, j++) { // 若當前點代表的棋子與上述某個點代表的棋子不一樣,則向上統計結束 if (chessBoard[x][y] != chessBoard[i][j]) {break; } count++; } // 再統計左下顏色相同的個數 for (int i = x+1, j = y - 1; i <= 15 && j >= 0; i++, j--) { if (chessBoard[x][y] != chessBoard[i][j]) {break; } count++; } if (5 == count) { return true; } // 當上述所有情況都不成立時,表示該下棋方沒有獲勝 return false; }}

public class WuziqiTest { public static void main(String[] args) { //聲明一個Wuziqi類型的引用指向Wuziqi類型的對象 Wuziqi wz = new Wuziqi(); //調用paint()方法打印列信息 wz.paint(); //下棋開始 wz.play(); }}

結果如下

java控制臺版實現五子棋游戲

文中沒有對下棋時候的數組下標進行合理值判斷,各位可自行完善。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 欧美高清v | 欧美黄色大片免费 | 国产高清在线a视频大全 | 中文字幕在线色 | 黑人巨大两根一起挤进来 | 天堂影院jav成人天堂免费观看 | 国产成人精品视频 | 欧美在线精品一区二区在线观看 | 9久热久re爱免费精品视频 | 9久热久re爱免费精品视频 | 看一级特黄a大片国产 | 久久99精品久久久 | 国产亚洲精品日韩香蕉网 | 特级深夜a级毛片免费观看 特极毛片 | 欧美色资源| 澳门一级毛片免费播放 | 国内精品一区二区三区最新 | 91短视频在线 | 精品视频一区二区 | 香蕉视频观看 | 日本一级特黄大一片免 | 免费看片网址 | 婷婷在线成人免费观看搜索 | 日韩午夜高清福利片在线观看 | 国产欧美精品一区二区 | 国产人成| 99久久综合精品国产 | 精品在线第一页 | 小优视频最新免费观看 | 在线观看亚洲网站 | 亚洲欧美日本国产综合在线 | 被窝福利无限 | 欧美一级片在线看 | 一本大道一卡2卡三卡4卡麻豆 | 国产福利91精品一区二区三区 | 日韩毛片网站 | 成人伊人网 | 高清毛片aaaaaaaaa片 | 成人精品视频一区二区三区 | 国产精品久久福利新婚之夜 | 日韩欧美亚洲综合久久99e |