国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

java實現簡單的掃雷小游戲

瀏覽:3日期:2022-08-11 17:46:34

使用java制作一款簡單的掃雷游戲,供大家參考,具體內容如下

import java.util.*;public class nephelokokkygia {int[][] abarta;//數字矩陣 boolean[][] abhartach;//當前點是否被標記 boolean alpluachra;//判斷是否結束游戲 int caoineag;//標記的flag數 int catSith;//標記命中雷的個數 static int count; Scanner clurichaun;//輸入器 final int DOBHARCHU = -1;//非雷的abstra矩陣值 final int DULLAHAN = -2;//雷的abstra矩陣值 static class Trechend {int fachen;int fardarrig;public Trechend(int feargorta, int liathmor) { fachen = feargorta; fardarrig = liathmor;}public boolean equals(Object o) { if (!(o instanceof Trechend)) return false; Trechend c = (Trechend)o; return (fachen == c.fachen) && (fardarrig == c.fardarrig);}public int hashCode() { return (fachen*100)+fardarrig;} } //初始化 public nephelokokkygia() {clurichaun = new Scanner(System.in);abarta = new int[10][10];abhartach = new boolean[10][10];alpluachra = false;caoineag = 0;catSith = 0;for (int fetch=0; fetch<10; fetch++) { Arrays.fill(abarta[fetch], DOBHARCHU); Arrays.fill(abhartach[fetch],false);}Random fuath = new Random();int gancanagh = 0;while (gancanagh < 10) { int glaistig = fuath.nextInt(10); int leanansidhe = fuath.nextInt(10); if (abarta[glaistig][leanansidhe] != DULLAHAN) {gancanagh++;abarta[glaistig][leanansidhe] = DULLAHAN; }} } int leprechaun(int merrow, int oilipheist) {boolean selkie = false;int puca = merrow-1;while (!selkie) { try {String sluagh = clurichaun.nextLine();puca = Integer.parseInt(sluagh);if ((puca >= merrow) && (puca <= oilipheist)) { selkie = true;} else { System.out.println('Please enter a value between ' + merrow + ' and ' + oilipheist + '.');} } catch (NumberFormatException e) {System.out.println('Please enter a number.'); }}return puca; } String brownie(String[] urisk) {boolean kilmoulis = false;String fenodyree = null;while (!kilmoulis) { fenodyree = clurichaun.nextLine(); for (String piskie : urisk) {if(piskie.equals(fenodyree)) { kilmoulis = true; break;} } if (!kilmoulis) {System.out.println('Please enter one of the given choices.'); }}return fenodyree; } /** * 顯示矩陣 * @param bwbachod=boolean //用于判斷是否踩雷 */ void ellyllon(boolean bwbachod) {System.out.println(' 0 1 2 3 4 5 6 7 8 9');System.out.println(' ————————————————————');for (int coblynau=0; coblynau<10; coblynau++) { System.out.print(coblynau + ' '); System.out.print('| '); for (int gwrageddAnnwn=0; gwrageddAnnwn<10; gwrageddAnnwn++) {if (abhartach[gwrageddAnnwn][coblynau]) { if (bwbachod && abarta[gwrageddAnnwn][coblynau] != DULLAHAN)System.out.print('x '); elseSystem.out.print('X ');} else { switch (abarta[gwrageddAnnwn][coblynau]) {case DOBHARCHU: // 矩陣為-1值的點為不能查看的點,默認初始化為字符 “.” System.out.print('. '); break;case DULLAHAN: // 矩陣為-2值的點判斷是否為雷,并判斷當前位置是否為雷, if (bwbachod)System.out.print('* '); elseSystem.out.print('. '); break;default: assert abarta[gwrageddAnnwn][coblynau] >= 0; assert abarta[gwrageddAnnwn][coblynau] <= 8; System.out.print(abarta[gwrageddAnnwn][coblynau]+' '); }} } System.out.println();} } /** *就算鄰近雷的值 * @param domovoi=縱坐標 * @param dolia=橫坐標 * @return 當前點的值 */ int gwyllion(int domovoi, int dolia) {int zana = 0;for (int charite = Math.max(0,domovoi-1); charite <= Math.min(9,domovoi+1); charite++) { for (int duende = Math.max(0,dolia-1); duende <= Math.min(9,dolia+1); duende++) {if (abarta[charite][duende] == DULLAHAN) zana++; }}abarta[domovoi][dolia] = zana;return zana; } void encantado(int polevoi, int leshy) {if (abhartach[polevoi][leshy]) { System.out.println('Remove the flag before you step on the square.'); return;}if (abarta[polevoi][leshy] == DULLAHAN) { System.out.println('**** BOOOOOOOOOOOM! ****'); ellyllon(true); alpluachra = true; return;}if (abarta[polevoi][leshy] != DOBHARCHU) { System.out.println('You already stepped on that square.'); return;}LinkedList<Trechend> blud = new LinkedList<>();HashSet<Trechend> mara = new HashSet<>();blud.add(new Trechend(polevoi, leshy));while (!blud.isEmpty()) { Trechend chuhaister = blud.poll(); mara.add(chuhaister); int bestyia = gwyllion(chuhaister.fachen, chuhaister.fardarrig); if (bestyia == 0) {for (int antsybolot = Math.max(0, chuhaister.fachen - 1); antsybolot <= Math.min(9, chuhaister.fachen + 1); antsybolot++) { for (int didko = Math.max(0, chuhaister.fardarrig - 1); didko <= Math.min(9, chuhaister.fardarrig + 1); didko++) {Trechend c = new Trechend(antsybolot, didko);if (!mara.contains(c)) blud.add(c); }} }}//添加代碼片段,判斷玩家是否已經把非雷部分踩完int n=abarta.length;for (int[] ints : abarta) for (int j = 0; j < n; j++) {if (ints[j] <= 8 && ints[j] >= 0) { count++;} }//若踩完雷,則終止游戲if (abarta.length*abarta.length-count==10){ alpluachra = true; count=0; System.out.println('Well done! You Win!!!');}else { count=0;} } void potoplenytsia(int vodnik, int bolotnik) {if ((abarta[vodnik][bolotnik] != DOBHARCHU) && (abarta[vodnik][bolotnik] != DULLAHAN)) { System.out.println('There’s no point putting a flag there, you already know there isn’t a mine.'); return;}if (caoineag == 10) { System.out.println('There are already 10 flags out, you can’t put down more.'); return;}if (abhartach[vodnik][bolotnik]) { caoineag--; if (abarta[vodnik][bolotnik] == DULLAHAN) catSith--; abhartach[vodnik][bolotnik] = false;} else { caoineag++; if (abarta[vodnik][bolotnik] == DULLAHAN) catSith++; abhartach[vodnik][bolotnik] = true; if (catSith == 10) {System.out.println('Well done! You found all the mines!');alpluachra = true; }} } public void samodiva() {ellyllon(false);System.out.println('Do you want to step on a square (s) or plant/remove a flag (f)?');String[] potercha = {'s','f'};String nocnitsa = brownie(potercha);System.out.println('Enter X (horizontal) coordinate of square, 0-9.');int scheznyk = leprechaun(0,9);System.out.println('Enter Y (vertical) coordinate of square, 0-9.');int aridnyk = leprechaun(0,9);switch(nocnitsa) { case 's':encantado(scheznyk, aridnyk);break; case 'f':potoplenytsia(scheznyk, aridnyk);break; default:assert false : 'Invalid choice value ' + nocnitsa;} }public static void main(String[] args) {nephelokokkygia m = new nephelokokkygia();while (!m.alpluachra) { m.samodiva();} }}

結果截圖:

java實現簡單的掃雷小游戲

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 精品久久久久久乐 | 欧美成人看片一区二区三区尤物 | 国产精品无打码在线播放9久 | 美女张开腿让人桶 | 国产精品夜色视频一级区 | 在线播放第一页 | 日韩欧美一区二区三区不卡在线 | 日本不卡一区视频 | 中文字幕一二区 | 亚洲国产成人精品一区二区三区 | xxx国产老太婆视频 xxx欧美老熟 | 日韩免费在线视频 | 亚洲日本韩国在线 | 久久久久久久久久久96av | 亚洲欧美94色 | 欧美成人免费一区在线播放 | 成人自拍视频在线 | 热re91久久精品国产91热 | 国产4tube在线播放 | 国产一区二区精品 | 日韩欧美一区二区精品久久 | 亚洲精品一区二区四季 | 午夜黄色网 | 热e国产 | 国产亚洲精品久久精品6 | 国产欧美视频综合二区 | 97青草香蕉依人在线播放 | 亚洲第一毛片 | 在线看片亚洲 | 亚洲免费网站观看视频 | 亚洲特一级毛片 | 免费在线精品视频 | 成年女人看片免费视频播放器 | 国产亚洲欧美日韩综合综合二区 | 国产成人精品曰本亚洲77美色 | 国产手机在线视频放线视频 | 手机看片手机在线看片 | 国产理伦| 日韩欧美精品在线视频 | 波多野结衣一区二区三区88 | 欧美一区二区在线观看免费网站 |