A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© samove 中级黑马   /  2015-7-2 19:47  /  5583 人查看  /  87 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. <div class="blockcode"><blockquote><div class="blockcode"><blockquote><div class="blockcode"><blockquote><div class="blockcode"><blockquote>class JieMian {

  2.         private JieMian() {};

  3.         public static void Print(boolean[] lei, int[] guangBiao, int[] xianShi,
  4.                         int[] slw) {
  5.                 for (int i = 0, a = 0; i < 11; i++) // 局部变量 a 用来,判定光标的位置。
  6.                 {
  7.                         for (int ii = 0; ii < 11; ii++) {
  8.                                 if (i == 0 || i == 10) // 第一行与最后一行。
  9.                                 {
  10.                                         if (ii == 10) {
  11.                                                 System.out.println("■"); // 最后一行,( ,1) 换行
  12.                                         } else {
  13.                                                 System.out.print("■");
  14.                                         }
  15.                                 } else {
  16.                                         if (ii == 0) // 第一列
  17.                                         {
  18.                                                 System.out.print("■");
  19.                                         } else if (ii == 10) // 最后一列
  20.                                         {
  21.                                                 System.out.println("■");
  22.                                         } else // else 为中间部分。变量a从这部分开始计数。〓↓〓↓〓↓〓↓〓↓〓↓〓
  23.                                         {
  24.                                                 if (lei[a] == true) // 有雷
  25.                                                 {
  26.                                                         if (guangBiao[0] == a) // guangBiao==a,光标在的位置优先显示光标。
  27.                                                                 System.out.print("※");
  28.                                                         else {
  29.                                                                 if (xianShi[a] == -1) {
  30.                                                                         System.out.print("▲");
  31.                                                                 } else
  32.                                                                         System.out.print("□");
  33.                                                                 // System.out.print("●",0); //调试时,显示雷的位置。
  34.                                                         }
  35.                                                 } else if (lei[a] != true && slw[a] != 0) // 无雷,但附近有雷。
  36.                                                 {
  37.                                                         if (guangBiao[0] == a)
  38.                                                                 System.out.print("※");
  39.                                                         else {
  40.                                                                 if (xianShi[a] == -1) // 当xianShi[jiaoBiao]=-1,打开显示
  41.                                                                 {
  42.                                                                         System.out.print(slw[a]+""+slw[a]); // 显示附近雷的数目
  43.                                                                 } else
  44.                                                                         System.out.print("□"); // 默认用"□"隐藏。
  45.                                                         }
  46.                                                 } else // 空白处。
  47.                                                 {
  48.                                                         if (guangBiao[0] == a)
  49.                                                                 System.out.print("※");
  50.                                                         else {
  51.                                                                 if (xianShi[a] == -1)
  52.                                                                         System.out.print("  ");
  53.                                                                 else
  54.                                                                         System.out.print("□");
  55.                                                         }
  56.                                                 }
  57.                                                 a++;
  58.                                                 // 放在else中间部分,81个元素。当guangBiao与a的值对应时就打印"※"。〓↑〓↑〓↑〓↑〓↑〓↑〓↑〓↑
  59.                                         }
  60.                                 }
  61.                         }
  62.                 }
  63.                 System.out.println();
  64.         }
  65. }
复制代码

class FanWei {
        private FanWei() {}

        public static int[] getWASD(int jiDian) // jiDian→左右上下
        {
                int[] wasd = { 0, 0, 0, 0, 0, 0, 0, 0 };
                switch (jiDian) {
                case 0:
                        wasd[0] = 0; // 左上
                        wasd[1] = 0; // 上
                        wasd[2] = 0; // 右上
                        wasd[3] = 0; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 0; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 10; // 右下
                        break;
                case 8:
                        wasd[0] = 0; // 左上
                        wasd[1] = 0; // 上
                        wasd[2] = 0; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 0; // 右
                        wasd[5] = 8; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 0; // 右下
                        break;
                case 72:
                        wasd[0] = 0; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = -8; // 右上
                        wasd[3] = 0; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 0; // 左下
                        wasd[6] = 0; // 下
                        wasd[7] = 0; // 右下
                        break;
                case 80:
                        wasd[0] = -10; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = 0; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 0; // 右
                        wasd[5] = 0; // 左下
                        wasd[6] = 0; // 下
                        wasd[7] = 0; // 右下
                        break;
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                        wasd[0] = 0; // 左上
                        wasd[1] = 0; // 上
                        wasd[2] = 0; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 8; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 10; // 右下
                        break;
                case 73:
                case 74:
                case 75:
                case 76:
                case 77:
                case 78:
                case 79:
                        wasd[0] = -10; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = -8; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 0; // 左下
                        wasd[6] = 0; // 下
                        wasd[7] = 0; // 右下
                        break;
                case 9:
                case 18:
                case 27:
                case 36:
                case 45:
                case 54:
                case 63:
                        wasd[0] = 0; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = -8; // 右上
                        wasd[3] = 0; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 0; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 10; // 右下
                        break;
                case 17:
                case 26:
                case 35:
                case 44:
                case 53:
                case 62:
                case 71:
                        wasd[0] = -10; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = 0; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 0; // 右
                        wasd[5] = 8; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 0; // 右下
                        break;
                default:
                        wasd[0] = -10; // 左上
                        wasd[1] = -9; // 上
                        wasd[2] = -8; // 右上
                        wasd[3] = -1; // 左
                        wasd[4] = 1; // 右
                        wasd[5] = 8; // 左下
                        wasd[6] = 9; // 下
                        wasd[7] = 10; // 右下
                        break;
                }
                return wasd;
        }
}

class FuJin {
        private FuJin() {}

        public static void leiShu(int[] slw, int leiDian) {
                switch (leiDian) {
                case 0:
                        slw[leiDian + 1]++;
                        slw[leiDian + 9]++;
                        slw[leiDian + 10]++;
                        break;
                case 8:
                        slw[leiDian - 1]++;
                        slw[leiDian + 9]++;
                        slw[leiDian + 8]++;
                        break;
                case 72:
                        slw[leiDian + 1]++;
                        slw[leiDian - 9]++;
                        slw[leiDian - 8]++;
                        break;
                case 80:
                        slw[leiDian - 1]++;
                        slw[leiDian - 9]++;
                        slw[leiDian - 10]++;
                        break;
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                        slw[leiDian - 1]++;
                        slw[leiDian + 1]++;
                        slw[leiDian + 8]++;
                        slw[leiDian + 9]++;
                        slw[leiDian + 10]++;
                        break;
                case 73:
                case 74:
                case 75:
                case 76:
                case 77:
                case 78:
                case 79:
                        slw[leiDian - 1]++;
                        slw[leiDian + 1]++;
                        slw[leiDian - 8]++;
                        slw[leiDian - 9]++;
                        slw[leiDian - 10]++;
                        break;
                case 9:
                case 18:
                case 27:
                case 36:
                case 45:
                case 54:
                case 63:
                        slw[leiDian - 9]++;
                        slw[leiDian + 9]++;
                        slw[leiDian - 8]++;
                        slw[leiDian + 1]++;
                        slw[leiDian + 10]++;
                        break;
                case 17:
                case 26:
                case 35:
                case 44:
                case 53:
                case 62:
                case 71:
                        slw[leiDian - 9]++;
                        slw[leiDian + 9]++;
                        slw[leiDian - 10]++;
                        slw[leiDian - 1]++;
                        slw[leiDian + 8]++;
                        break;
                default:
                        slw[leiDian - 8]++;
                        slw[leiDian - 9]++;
                        slw[leiDian - 10]++;
                        slw[leiDian + 8]++;
                        slw[leiDian + 9]++;
                        slw[leiDian + 10]++;
                        slw[leiDian - 1]++;
                        slw[leiDian + 1]++;
                        break;
                } // 对雷附近雷数分析↑↑↑↑↑↑

                return ;
        }
}

class Move {
        private Move() {};

        // 用变量“guangBiao”的值(0~80),定义光标应移动到的位置。
        public static void upW(boolean[] lei, int[] guangBiao, int[] xianShi,
                        int[] slw){
                if (guangBiao[0] < 9)
                        guangBiao[0] += 72;
                else
                        guangBiao[0] -= 9;
        }

        public static void leftA(boolean[] lei, int[] guangBiao, int[] xianShi,
                        int[] slw) {
                if (guangBiao[0] == 0)
                        guangBiao[0] = 80;
                else
                        guangBiao[0] -= 1;
        }

        public static void downS(boolean[] lei, int[] guangBiao, int[] xianShi,
                        int[] slw) {
                if (guangBiao[0] > 71)
                        guangBiao[0] -= 72;
                else
                        guangBiao[0] += 9;
        }

        public static void rightD(boolean[] lei, int[] guangBiao, int[] xianShi,
                        int[] slw) {
                if (guangBiao[0] == 80)
                        guangBiao[0] = 0;
                else
                        guangBiao[0] += 1;
        }
}

class Victory {
        private Victory() {};

        public static void print() {
                for (int i = 0, a = 0; i < 11; i++) {
                        for (int ii = 0; ii < 11; ii++) {
                                if (i == 0 || i == 10) // 第一行与最后一行。
                                {
                                        if (ii == 10) {
                                                System.out.println("■"); // 最后一列,( ,1) 换行
                                        } else {
                                                System.out.print("■");
                                        }
                                } else {
                                        if (ii == 0) // 第一列
                                        {
                                                System.out.print("■");
                                        } else if (ii == 10) // 最后一列
                                        {
                                                System.out.println("■");
                                        } else // else 为中间部分。变量a从这部分开始计数。〓↓〓↓〓↓〓↓〓↓〓↓〓
                                        {
                                                switch (a % 9) {
                                                case 0:
                                                case 8:
                                                        System.out.print("★");
                                                        break;
                                                case 1:
                                                        System.out.print("我");
                                                        break;
                                                case 2:
                                                        System.out.print("爱");
                                                        break;
                                                case 3:
                                                        System.out.print("北");
                                                        break;
                                                case 4:
                                                        System.out.print("京");
                                                        break;
                                                case 5:
                                                        System.out.print("天");
                                                        break;
                                                case 6:
                                                        System.out.print("安");
                                                        break;
                                                case 7:
                                                        System.out.print("门");
                                                        break;
                                                default:
                                                        break;
                                                }
                                                a++; // 变量 a 记录中间81个元素。〓↑〓↑〓↑〓↑〓↑〓↑〓↑〓↑
                                        }
                                }

                        }
                }
        }
}

代码太长,没发成功,楼下补下。游戏规则基本同电脑扫雷,另:按“w、a、s、d”移动光标,按“y”踩非雷区,按“l”找到并标记雷,标记出十个雷胜利。

评分

参与人数 3技术分 +1 黑马币 +18 收起 理由
芬芬老师 + 1 很给力! 补上啦~~~
098ASD + 12 淡定
1014914737 + 6 很给力!

查看全部评分

87 个回复

正序浏览
对于我们这些JAVA小白来说,这次真的长见识了,厉害!!
回复 使用道具 举报
好厉害:victory::victory:
回复 使用道具 举报
有点意思,赞一个
回复 使用道具 举报
自己研究的,很认真的做出来了,赞一个
回复 使用道具 举报
学习了                     
回复 使用道具 举报
牛逼啊,碉堡了
回复 使用道具 举报
形而上孤独 来自手机 中级黑马 2015-7-5 20:58:58
80#
牛逼啊!
回复 使用道具 举报
这么多回复捧场的朋友,要是都给我加一分,那该有多好啊。:lol
回复 使用道具 举报
从小变大,后面的会更好
回复 使用道具 举报
牛啊!!!!!!
回复 使用道具 举报
好厉害啊
回复 使用道具 举报
samove 发表于 2015-7-2 19:51
一共八个class类,main方法在 class SaoLei 类里面,即上面最后一个。代码比较多,发的有点乱,请见谅。
再 ...

666 真的很六,不知道学多久才能这样自己编小游戏
回复 使用道具 举报
蛮厉害的。。
回复 使用道具 举报
楼主碉堡了。。。
回复 使用道具 举报
zlpiano 发表于 2015-7-4 23:08
佩服佩服,膜拜大神,不过为什么不用GUI做呢

才学了五天,做的,完全不知道GUI是什么。。学了,GUI ,再写
回复 使用道具 举报
18295718171 来自手机 中级黑马 2015-7-4 23:17:14
71#
给力啊!看着好复杂的样子
回复 使用道具 举报
佩服佩服,膜拜大神,不过为什么不用GUI做呢
回复 使用道具 举报
我才发现原来我后面是个大神啊!赞一个!:loveliness:
回复 使用道具 举报
我才发现原来我后面是个大神啊!赞一个!:loveliness:
回复 使用道具 举报
6666666666666666666666666666
尽管很多地方并不能看懂  相信以后绝对写的出来!!!!!!!
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 加入黑马