中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java如何實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲-創(chuàng)新互聯(lián)

小編給大家分享一下java如何實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)網(wǎng)站開(kāi)發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),成都響應(yīng)式網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢(xún)和貼心的售后服務(wù)。歡迎咨詢(xún)做網(wǎng)站需要多少錢(qián):18980820575

具體內(nèi)容如下

GobangMain這個(gè)類(lèi)是游戲的主方法,主要用于控制游戲的執(zhí)行,值得注意的是輸入的坐標(biāo)的格式是3,4的樣式,不能是其他的格式,也不能出現(xiàn)空格。

package com.qf.Gobang;import java.util.Scanner;import org.omg.CORBA.PUBLIC_MEMBER;public class GobangMain {  public static String white = "白色";  public static String black = "黑色";  public static boolean color=true;  public static String spoint;//存儲(chǔ)坐標(biāo)  public static void main(String[] args) {    Gobang gobang = new Gobang();    Scanner scanner=new Scanner(System.in);    while(true){      System.out.println("請(qǐng)"+(color?white:black)+"落子:");      spoint=scanner.next();//獲得坐標(biāo)      Point point=gobang.analysisPoint(spoint);//解析坐標(biāo),并返回坐標(biāo)對(duì)象      if(gobang.luoZi(point,color)){        gobang.printMap();        if(gobang.isWin(point,color)){          System.out.println(""+(color?white:black)+"贏了!");          break;        }        color=!color;      }    }  }}

Point類(lèi)

public class Point {  public Point(int x, int y) {    super();    this.x = x;    this.y = y;  }  int x;  int y;}

Gobang 類(lèi)是游戲類(lèi),主要包含游戲的判斷游戲的結(jié)束等等。

package com.qf.Gobang;import java.awt.Event;import java.util.Scanner;public class Gobang {  public int n = 20;// 地圖的規(guī)模  public String color;// 確認(rèn)是白方,還是黑方  public String mark = "╋";  public String white = "○";  public String black = "●";  public String[][] map = new String[n][n];;  public String[] coordinate = { "⒈", "⒉", "⒊", "⒋", "⒌", "⒍", "⒎", "⒏", "⒐", "⒑", "⒒", "⒓", "⒔", "⒕", "⒖", "⒗", "⒘",      "⒙", "⒚", "⒛" };  public Gobang() {    // 初始化地圖    init();  }  // 初始化地圖  public void init() {    for (int i = 0; i < n; i++) {      for (int j = 0; j < n; j++) {        if (i == n - 1) {          map[i][j] = coordinate[j];        } else if (j == n - 1) {          map[i][j] = coordinate[i];        } else {          map[i][j] = mark;        }      }    }    printMap();  }  // 打印地圖  public void printMap() {    for (int i = 0; i < n; i++) {      for (int j = 0; j < n; j++) {        System.out.print(map[i][j]);      }      System.out.println();    }  }  // 解析坐標(biāo)  public Point analysisPoint(String point) {    String[] points = point.split(",");    int x = Integer.parseInt(points[0]) - 1;    int y = Integer.parseInt(points[1]) - 1;    return new Point(x, y);  }  // 落子  public boolean luoZi(Point point, Boolean color) {    // 判斷是否越界    if (point.x < 0 || point.y > 18 || point.y < 0 || point.y > 18) {      return false;    }    // 判斷落子的地方有沒(méi)有其他的子    if (map[point.x][point.y] != mark) {      return false;    }    map[point.x][point.y] = color ? white : black;    return true;  }  // 判斷是否輸贏  public boolean isWin(Point point, boolean color) {    // 縱向    int zxS = 0;// 縱向上    for (int i = 0; i < 5; i++) {      if (point.x - i < 0) {        break;      }      if (map[point.x - i][point.y].equals(color ? white : black)) {        zxS++;      } else {        break;      }    }    int zxX = 0;// 縱向下    for (int i = 1; i < 5; i++) {      if (point.x + i > 18) {        break;      }      if (map[point.x + i][point.y].equals(color ? white : black)) {        zxX++;      } else {        break;      }    }    // 橫向    int hxZ = 0;// 橫向左    for (int i = 0; i < 5; i++) {      if (point.y - i < 0) {        break;      }      if (map[point.x][point.y - i].equals(color ? white : black)) {        hxZ++;      } else {        break;      }    }    int hxY = 0;// 橫向右    for (int i = 1; i < 5; i++) {      if (point.y + i > 18) {        break;      }      if (map[point.x][point.y + i].equals(color ? white : black)) {        hxY++;      } else {        break;      }    }    // 正斜    int zxxS = 0;// 正斜上    for (int i = 0; i < 5; i++) {      if (point.y + i > 18 || point.x - i < 0) {        break;      }      if (map[point.x - i][point.y + i].equals(color ? white : black)) {        zxxS++;      } else {        break;      }    }    int zxxX = 0;// 正斜下    for (int i = 1; i < 5; i++) {      if (point.y - i < 0 || point.x + i > 18) {        break;      }      if (map[point.x + i][point.y - i].equals(color ? white : black)) {        zxxX++;      } else {        break;      }    }    // 反斜    int fxxS = 0;// 反斜上    for (int i = 0; i < 5; i++) {      if (point.y - i < 0 || point.x - i < 0) {        break;      }      if (map[point.x - i][point.y - i].equals(color ? white : black)) {        fxxS++;      } else {        break;      }    }    int fxxX = 0;// 反斜下    for (int i = 1; i < 5; i++) {      if (point.y + i > 18 || point.x + i >18) {        break;      }      if (map[point.x + i][point.y + i].equals(color ? white : black)) {        fxxX++;      } else {        break;      }    }    System.out.println();    System.out.print("反斜上↖:" + fxxS+"\t");    System.out.print("縱向上↑:" + zxS+"\t");    System.out.print("正斜上↗:" + zxxS);    System.out.println();    System.out.print("橫向左←:" + hxZ+"\t\t\t");    System.out.print("橫向右→:" + hxY);    System.out.println();    System.out.print("正斜下↙:" + zxxX+"\t");    System.out.print("縱向下↓:" + zxX+"\t");    System.out.print("反斜下↘:" + fxxX);    System.out.println();    if (zxS + zxX > 4 || hxY + hxZ > 4 || zxxS + zxxX > 4 || fxxS + fxxX > 4) {      return true;    }    return false;  }}

以上是“java如何實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標(biāo)題:java如何實(shí)現(xiàn)簡(jiǎn)單控制臺(tái)五子棋游戲-創(chuàng)新互聯(lián)
本文路徑:http://m.rwnh.cn/article20/djoojo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、小程序開(kāi)發(fā)網(wǎng)站改版、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)建站公司、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
吴堡县| 北川| 荥经县| 安塞县| 迁安市| 新邵县| 大英县| 元朗区| 枣强县| 塔城市| 昌都县| 教育| 和田市| 南皮县| 诏安县| 焦作市| 海原县| 昌吉市| 盘锦市| 华安县| 浑源县| 孟州市| 土默特左旗| 广安市| 岳阳县| 宜兰市| 成都市| 县级市| 张家川| 南投市| 綦江县| 东海县| 儋州市| 石家庄市| 云阳县| 铁岭县| 永修县| 商都县| 彩票| 沅江市| 福建省|