java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲(2)
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲游戲的具體代碼,供大家參考,具體內(nèi)容如下
講解
在第一步實(shí)現(xiàn)的基礎(chǔ)上,添加游戲結(jié)束條件。
五子棋游戲中的相同棋子如果同時(shí)有五個(gè)連接成一條線就說明游戲結(jié)束。
代碼實(shí)現(xiàn)如下:
if(count!=0){ ? ? ?? ??? ??? ?//判斷每一行 ? ? ?? ??? ??? ?for(int j=0;j<11;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j][i+1]==1&&chessboard[j][i+2]==1&&chessboard[j][i+3]==1&&chessboard[j][i+4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j][i+1]==2&&chessboard[j][i+2]==2&&chessboard[j][i+3]==2&&chessboard[j][i+4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?//判斷每一列 ? ? ?? ??? ??? ?for(int j=0;j<11;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[i][j]==1&&chessboard[i+1][j]==1&&chessboard[i+2][j]==1&&chessboard[i+3][j]==1&&chessboard[i+4][j]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[i][j]==2&&chessboard[i+1][j]==2&&chessboard[i+2][j]==2&&chessboard[i+3][j]==2&&chessboard[i+4][j]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?//左上到右下 ? ? ?? ??? ??? ?for(int j=0;j<7;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j+1][i+1]==1&&chessboard[j+2][i+2]==1&&chessboard[j+3][i+3]==1&&chessboard[j+4][i+4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j+1][i+1]==2&&chessboard[j+2][i+2]==2&&chessboard[j+3][i+3]==2&&chessboard[j+4][i+4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?//右上到左下 ? ? ?? ??? ??? ?for(int j=0;j<7;j++){ ? ? ?? ??? ??? ??? ?for(int i=10;i>=4;i--){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j+1][i-1]==1&&chessboard[j+2][i-2]==1&&chessboard[j+3][i-3]==1&&chessboard[j+4][i-4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j+1][i-1]==2&&chessboard[j+2][i-2]==2&&chessboard[j+3][i-3]==2&&chessboard[j+4][i-4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ?} ? ? ?? ??? ?else{ ? ? ?? ??? ??? ?//System.out.println("游戲結(jié)束"); ? ? ?? ??? ??? ?int flag=0; ? ? ?? ??? ??? ?for(int j=0;j<11;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j][i+1]==1&&chessboard[j][i+2]==1&&chessboard[j][i+3]==1&&chessboard[j][i+4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j][i+1]==2&&chessboard[j][i+2]==2&&chessboard[j][i+3]==2&&chessboard[j][i+4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?for(int j=0;j<11;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[i][j]==1&&chessboard[i+1][j]==1&&chessboard[i+2][j]==1&&chessboard[i+3][j]==1&&chessboard[i+4][j]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[i][j]==2&&chessboard[i+1][j]==2&&chessboard[i+2][j]==2&&chessboard[i+3][j]==2&&chessboard[i+4][j]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?for(int j=0;j<7;j++){ ? ? ?? ??? ??? ??? ?for(int i=0;i<7;i++){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j+1][i+1]==1&&chessboard[j+2][i+2]==1&&chessboard[j+3][i+3]==1&&chessboard[j+4][i+4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j+1][i+1]==2&&chessboard[j+2][i+2]==2&&chessboard[j+3][i+3]==2&&chessboard[j+4][i+4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?for(int j=0;j<7;j++){ ? ? ?? ??? ??? ??? ?for(int i=10;i>=4;i--){ ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==1&&chessboard[j+1][i-1]==1&&chessboard[j+2][i-2]==1&&chessboard[j+3][i-3]==1&&chessboard[j+4][i-4]==1){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,黑棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ??? ?if(chessboard[j][i]==2&&chessboard[j+1][i-1]==2&&chessboard[j+2][i-2]==2&&chessboard[j+3][i-3]==2&&chessboard[j+4][i-4]==2){ ? ? ? ? ?? ??? ??? ??? ??? ?System.out.println("游戲結(jié)束,白棋獲勝"); ? ? ? ? ?? ??? ??? ??? ??? ?flag=1; ? ? ? ? ?? ??? ??? ??? ??? ?break; ? ? ? ? ?? ??? ??? ??? ?} ? ? ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?} ? ? ?? ??? ??? ?if(flag==0){ ? ? ?? ??? ??? ??? ?System.out.println("游戲結(jié)束,平局"); ? ? ?? ??? ??? ?} ? ? ?? ??? ?}
每次都要判斷是否游戲結(jié)束,如果結(jié)束了就需要輸出白棋還是黑棋勝。如果棋盤被填滿了,那么我們還需要判斷是否有平局的情況發(fā)生。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java動(dòng)態(tài)驗(yàn)證碼單線設(shè)計(jì)的兩種方法
這篇文章主要介紹了Java動(dòng)態(tài)驗(yàn)證碼單線設(shè)計(jì)的兩種方法,需要的朋友可以參考下2018-07-07Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01IntelliJ?IDEA設(shè)置JVM運(yùn)行參數(shù)的圖文介紹
這篇文章主要介紹了IntelliJ?IDEA設(shè)置JVM運(yùn)行參數(shù)的方法,包括配置方式及優(yōu)先級(jí),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04Springboot實(shí)現(xiàn)對(duì)配置文件中的明文密碼加密詳解
我們?cè)赟pringBoot項(xiàng)目當(dāng)中,會(huì)把數(shù)據(jù)庫(kù)的用戶名密碼等配置直接放在yaml或者properties文件中,這樣維護(hù)數(shù)據(jù)庫(kù)的密碼等敏感信息顯然是有一定風(fēng)險(xiǎn)的。所以本文為大家整理了對(duì)配置文件中的明文密碼加密的方法,希望對(duì)大家有所幫助2023-03-03Java利用位運(yùn)算實(shí)現(xiàn)乘法運(yùn)算詳解
這篇文章主要為大家詳細(xì)介紹了Java如何用位運(yùn)算實(shí)現(xiàn)乘法運(yùn)算,在實(shí)現(xiàn)乘法時(shí)要用位運(yùn)算實(shí)現(xiàn),并且不能出現(xiàn)加減乘除任何符號(hào),感興趣的可以了解一下2023-04-04