java實現(xiàn)簡易五子棋游戲
本文實例為大家分享了java實現(xiàn)簡易五子棋游戲的具體代碼,供大家參考,具體內(nèi)容如下
編寫一個簡易五子棋,棋盤在控制臺中繪制,棋盤每- - 個點都有對應(yīng)的坐標(biāo),下棋者輸
入對應(yīng)坐標(biāo)落棋子,運行效果如圖所示。兩位數(shù)字表示的坐標(biāo)中,第-一個數(shù)字表示橫坐標(biāo),
第二個數(shù)字表示縱坐標(biāo),運行結(jié)果如圖所示。
代碼:
package Test; import java.util.Scanner; public class Test4 { public static void main(String[] args) { int flag = 0; //偶數(shù)玩家一操作,奇數(shù)玩家二操作 int works=0; //判斷是否勝利,若勝利則為4 int works_x=0; //勝利時最后一步的x值 int works_y=0; //勝利時最后一步的y值 String list[][] = start(); //棋盤的生成,和顯示 for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[i].length; j++) { System.out.print(list[i][j]); } System.out.println(); } while (true) { //循環(huán)操作和顯示結(jié)果,勝利時跳出 Scanner sc = new Scanner(System.in); System.out.print("位置:"); String temp = sc.next(); //棋手輸入的x值和y值(此方法中為0-9的數(shù)) int x = Integer.parseInt(temp.substring(0,1)); int y = Integer.parseInt(temp.substring(1)); if (flag % 2 == 0){//玩家一操作,此位置為" - "時可操作,否則重新輸入 if (list[x+1][y+1]==" - ") list[x+1][y+1] = " O "; else flag--; } else{ //玩家二操作,此位置為" - "時可操作,否則重新輸入 if (list[x+1][y+1]==" - ") list[x+1][y+1] =" X "; else flag--; } flag++; //每次操作成功+1,下一玩家操作 for (int i = 0; i < list.length; i++) {//顯示操作結(jié)果 for (int j = 0; j < list[i].length; j++) { System.out.print(list[i][j]); ///* if (list[i][j]!=" - "){//判斷是否勝利,只有非“ - ”時判斷 if(work(list,i,j)==4){ works=work(list,i,j); works_x=x; works_y=y; } } //*/ } System.out.println(); } if(works!=0){//最后值為“ O ”時,玩家一勝出;最后值為“ X ”時,玩家二勝出。 if(list[works_x][works_y]==" O ") System.out.println("玩家一勝出"); else System.out.println("玩家二勝出"); System.out.println("結(jié)束"); break; } } } public static String[][] start() { //生成一個10*10的空棋盤 String list[][] = new String[11][11]; for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[i].length; j++) { if(i == 0 && j==0) list[i][j] = " "; else if (i == 0 && j!=0) list[i][j] = " "+(j-1)+" "; else if (j==0 && i!=0) list[i][j] = " "+(i-1)+" "; else list[i][j] = " - "; } } return list; } public static int work(String list[][],int x,int y) {//判斷是否勝利 //if(x-5>0 || y-5>0 ||x+5<list.length ||y+5<list[x].length) int temp=0; if(x-4>0 ){ if(y-4>0 ){ //左上角是否五子連線 for(int i=0;i<4;i++){ if (list[x][y]==list[x-5+i][y-5+i]) temp++; else break; } } else if(y+4<list[x].length){//右上角是否五子連線 for(int i=0;i<4;i++){ if (list[x][y]==list[x-4+i][y+4-i]) temp++; else break; } } else{ for(int i=0;i<4;i++){ //正上角是否五子連線 if (list[x][y]==list[x-4+i][y]) temp++; else break; } } } else if(x+4<list.length ){ //左下角是否五子連線 if(y-4>0 ){ for(int i=0;i<4;i++){ if (list[x][y]==list[x+4-i][y-4+i]) temp++; else break; } } else if(y+4<list[x].length){//右下角是否五子連線 for(int i=0;i<4;i++){ if (list[x][y]==list[x+4-i][y+4-i]) temp++; else break; } } else{ for(int i=0;i<4;i++){ //正下角是否五子連線 if (list[x][y]==list[x+4-i][y]) temp++; else break; } } } else{ if(y-4>0 ){ for(int i=0;i<4;i++){ //正左角是否五子連線 if (list[x][y]==list[x][y-4+i]) temp++; else break; } } else if(y+4<list[x].length){//正右角是否五子連線 for(int i=0;i<4;i++){ if (list[x][y]==list[x][y+4-i]) temp++; else break; } } } return temp; } }
更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot并發(fā)調(diào)優(yōu)之大事務(wù)和長連接
這篇文章主要介紹了Springboot并發(fā)調(diào)優(yōu)之大事務(wù)和長連接,重點分享長事務(wù)以及長連接導(dǎo)致的并發(fā)排查和優(yōu)化思路和示例,具有一定的參考價值,感興趣的可以了解一下2022-05-05m1 Mac設(shè)置多jdk版本并動態(tài)切換的實現(xiàn)
本文主要介紹 Mac 下如何安裝 JDK 并且多版本如何切換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08java創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來
下面小編就為大家?guī)硪黄猨ava創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01