电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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
相關文章:
主站蜘蛛池模板: 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 电主轴-高速精密电主轴-高速电机厂家-瑞德沃斯品牌有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 安驭邦官网-双向万能直角铣头,加工中心侧铣头,角度头[厂家直销] 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 高低温万能试验机-复合材料万能试验机-馥勒仪器 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 语料库-提供经典范文,文案句子,常用文书,您的写作得力助手 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 |