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

java實現(xiàn)簡易五子棋游戲

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

本文實例為大家分享了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)專題,分享給大家:

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

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

python俄羅斯方塊游戲集合

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

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

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

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

相關(guān)文章

  • Springboot并發(fā)調(diào)優(yōu)之大事務(wù)和長連接

    Springboot并發(fā)調(diào)優(yōu)之大事務(wù)和長連接

    這篇文章主要介紹了Springboot并發(fā)調(diào)優(yōu)之大事務(wù)和長連接,重點分享長事務(wù)以及長連接導(dǎo)致的并發(fā)排查和優(yōu)化思路和示例,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • 面試官:詳細(xì)談?wù)凧ava對象的4種引用方式

    面試官:詳細(xì)談?wù)凧ava對象的4種引用方式

    這篇文章主要給大家介紹了java面試官常會問到的,關(guān)于Java對象的4種引用方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • IDEA運行SpringBoot項目的圖文教程

    IDEA運行SpringBoot項目的圖文教程

    本文主要介紹了IDEA運行SpringBoot項目的圖文教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • m1 Mac設(shè)置多jdk版本并動態(tài)切換的實現(xiàn)

    m1 Mac設(shè)置多jdk版本并動態(tài)切換的實現(xiàn)

    本文主要介紹 Mac 下如何安裝 JDK 并且多版本如何切換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來

    java創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來

    下面小編就為大家?guī)硪黄猨ava創(chuàng)建一個類實現(xiàn)讀取一個文件中的每一行顯示出來的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Spring中使用事務(wù)嵌套時需要警惕的問題分享

    Spring中使用事務(wù)嵌套時需要警惕的問題分享

    最近項目上有一個使用事務(wù)相對復(fù)雜的業(yè)務(wù)場景報錯了。在絕大多數(shù)情況下,都是風(fēng)平浪靜,沒有問題。其實內(nèi)在暗流涌動,在有些異常情況下就會報錯,這種偶然性的問題很有可能就會在暴露到生產(chǎn)上造成事故,那究竟是怎么回事呢?本文就來簡單講講
    2023-04-04
  • 詳解ThreadLocal為什么會內(nèi)存溢出原理

    詳解ThreadLocal為什么會內(nèi)存溢出原理

    這篇文章主要為大家介紹了ThreadLocal為什么會內(nèi)存溢出原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • java實現(xiàn)簡單的圖書借閱系統(tǒng)

    java實現(xiàn)簡單的圖書借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)簡單的圖書借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解JAVA里面獲取map的key和value的方法

    詳解JAVA里面獲取map的key和value的方法

    這篇文章主要介紹了詳解JAVA里面獲取map的key和value的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java JDK1.5、1.6、1.7新特性整理

    Java JDK1.5、1.6、1.7新特性整理

    這篇文章主要介紹了Java JDK1.5、1.6、1.7新特性整理,需要的朋友可以參考下
    2016-10-10

最新評論