尝试写了一个在Java控制台运行的代码游戏,由于写这个的时候,博主还没学到可视化界面,也没有学到面向对象,甚至没有集合,运用的全是之前C语言的语法,因此应该很容易看懂吧。末尾附上源码。

以下是效果展示

 封面

战斗界面

操作方法是控制台输入对应数字,下面来说以下具体逻辑

     main:  while (true) {//主程序,用标号循环int a = sc.nextInt();//控制台输入一个数字switch (a) {case 1:  while (playerHp[0] >= 0){/*游戏主体*/}//开始游戏case 2:case 3:case 4:System.out.println("开发中敬请期待");break;case 0:System.out.println("退出游戏!");break main;//直接退出maindefault:System.out.println("功能开发中!");break;}}

主程序很简单,在死循环内,根据输入的数字打印相应语句即可,这里提到一个标号循环的用法,用来在生命值为0或者退出游戏时,可以直接结束死循环,写法是在while或者for前加任意字符名加冒号(例 main:while(true){/*语句*/}),然后程序内部如果执行到break 字符名时会跳出死循环。

游戏主体在角色血量大于0时循环,否则跳出,内部同样用switch选择并执行对应指令,代码原理同上。

然后是角色和怪物的属性,用static修饰可以方便全局调用,这个写在类里main外,当作静态常量

    static int[] playerHpMax = {100, 123, 146, 170, 205, 233, 257, 282, 323, 369};static int[] playerMpMax = {100, 110, 121, 132, 145, 161, 175, 184, 196, 200};static int[] playerHp = {100};static int[] playerMp = {100};static int playerLevel = 1;

搞懂这些之后,就可以在游戏主体内进行数据的计算,具体可以看源码

目前代码中实现了角色升级,角色技能使用,角色技能切换(但是伤害没有变~),背包,物品获得与使用,随机伤害,怪物击杀,地图互动等功能。

学完面向对象后发现现有写法不足之处颇多,但是很多功能的逻辑还有的。

源码(乱码的的话在右下角加载成GBK格式):

package com.Ea;import java.util.Random;
import java.util.Scanner;public class TestDemo3_1 {static Random r = new Random();static String[] bag = {"(空)", "小血瓶", "小魔法瓶", "月光·符石", "血瓶", "魔法瓶", "凤凰·符石", "???"};static String[] event = {"(空)", "[宝箱]", "废墟", "[遗落的木盒]", "遗落的钱袋", "神秘的山洞", "6", "7", "8", "9", "10", "幽暗的水晶", "祝福之泉", "映月之泉", "岩壁上的碑文", "15", "16", "17", "18", "19", "20", "先知", "商人", "23", "24", "25", "26", "27", "28", "29", "30", "龙兵", "龙卫", "龙王", "龙影", "若陀", "白灵龙", "龙卫首领", "小火龙", "火龙守卫", "喷火龙", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "道路(下一层)", "普通的山洞"};static int[][] floorEvent = {{ 1, 2, 3, 4, 31,51}, { 2, 3, 32, 4, 11,51}, { 2, 3, 32, 4, 12,51}, { 2, 3, 32, 4, 21,51}, { 2, 3, 32, 4, 21,51},{ 2, 3, 32, 4, 21,51}, { 2, 3, 32, 4, 21,51}, { 2, 3, 32, 4, 21,51},{ 2, 3, 32, 4, 21,51}, { 2, 3, 32, 4, 21,51}};static int[] eventNum = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52};static int[] bagFull = {1, 2, 3, 0, 0, };static int[] bagNum = {1, 1, 1, 0, 0, };static int[] skillCost1 = {20, 15, 50, 5};static int[] skillCost2 = {25, 20, 45, 5};static int[] skillCost3 = {10, 15, 20, 5};static int[] playerHpMax = {100, 123, 146, 170, 205, 233, 257, 282, 323, 369};static int[] playerMpMax = {100, 110, 121, 132, 145, 161, 175, 184, 196, 200};static int[] playerHp = {100};static int[] playerMp = {100};static int playerLevel = 1;public static void createFloor(int[][] args, int floor) {//bag[]String[] ad = {"失落的飘渺之城", "地下城1层", "地下城2层", "地下城3层", "(4层)龙之城边缘", "(5层)龙距之城", "(6层)熔岩洞窟", "(7层)熔岩之下", "(8层)黑王宫入口", "(9层)黑王宫", "(?)真正的飘渺之城"};System.out.println(ad[floor]);for (int i = 0; i < args[floor].length; i++) {System.out.println((i + 1) + "." + event[args[floor][i]]);System.out.println();}if (floor > 0) System.out.println(0 + ".返回上一层");}public static void treasure(int a, int bag[], int num[], int floor, int p) {switch (a) {case 1: {int c = r.nextInt(2) + 4;putInBag(a, c, bag, num, floor, p);break;}case 2:case 3:case 4:case 15: {//怪物获取int c = r.nextInt(3);if (c == 0) {c = r.nextInt(3);} else {c = r.nextInt(2) + 4;}putInBag(a, c, bag, num, floor, p);break;}case 13:case 14:putInBag(a, a, bag, num, floor, p);}}public static void nothing() {System.out.println("nothing");}public static void putInBag(int a, int d, int bag1[], int number[], int floor, int p) {//摆放背包boolean flag = false;for (int i = 0; i < bagFull.length; i++) {if (bag1[i] == a) {number[i]++;if (a == 1) System.out.print("打开了" + event[a] + "!");else if (a >= 2 && a <= 5) System.out.print("在" + event[a] + "中翻找,");else if (a == 13) {System.out.print("沐浴着泉水的微光,仿佛有所感悟,");d = 3;} else if (a == 14) {System.out.print("检查了" + event[a] + "仿佛有所感悟,");d = 6;}System.out.println("获得了" + bag[d] + "!");if (a >= 1 && a <= 4) floorEvent[floor][p] = 0;//重置事件为空else if (a == 5) floorEvent[floor][p] = 15;else if (a == 13) floorEvent[floor][p] = 12;break;}if (i == bagFull.length - 1) flag = true;}if (flag) {for (int i = 0; i < bagFull.length; i++) {if (bag1[i] == 0) {if (a == 1) System.out.print("打开了" + event[a] + "!");else if (a >= 2 && a <= 5) System.out.print("在" + event[a] + "中翻找,");else if (a == 13) {System.out.print("沐浴着泉水的微光,仿佛有所感悟,");d = 3;} else if (a == 14) {System.out.print("检查了" + event[a] + "仿佛有所感悟,");d = 6;}System.out.println("获得了" + bag[d] + "!");bag1[i] = d;number[i]++;if (a >= 1 && a <= 4) floorEvent[floor][p] = 0;//重置事件为空else if (a == 5) floorEvent[floor][p] = 15;else if (a == 13) floorEvent[floor][p] = 12;break;}if (i == bagFull.length - 1 || bag1[i] == a && bagNum[i] == 9) {System.out.print("打开了" + event[a] + "!");System.out.println("但是背包满了,放不下了~");}}}}public static void chooseStart() {{System.out.println("                                                                                 ");System.out.println("    ir   ::        ii              :       i                                  .  ");System.out.println("     jS   rJL      .B.             B2      Br     s77rri:irrrrrr7   Bi       B:1B");System.out.println("   :..DB.   iI...   .BL25KXKSX5KS  .Q  :B  M:     IIUULKB5j55SSqs  Ii  ... .B7 J.");System.out.println("   75JvvBBrBBi1USi   YB ........:  .B.  B  XE7ZB       :B        :YB  BU2vBQYvSL ");System.out.println("         S: J:   :    Bi          :sBBr:BqLB1  B       Bqi      .RB.:B    X      ");System.out.println("          Kv sj  Br    22UII5I21B   .u :B: vr .Q      .B QB:     g  Quu: 2 :J    ");System.out.println("           KY iv.B.             vS   B  vr 7U.gr      qY  :BP   K  E  1 gr7:     ");System.out.println("            Bi .BB   iiYUu212uUr B   Ji r1 iM:::.     B     . .5B:Y  r Bs.       ");System.out.println("            :B 1B1.  :B          Mi :Dgi.B  .  B.    rD      rr.:Mviu:D.::       ");System.out.println("            .Q.   rYuYB.     .uv7B: .    7L::iJv  .  Q.        7r i2:iBi:        ");System.out.println("                           *****************************        .                 ");System.out.println("                           *       =请输入对应指令=       *                         ");System.out.println("                           *       1. *" + "\33[36;50;4m" + "开始游戏" + "\33[0m" + "*         *                         ");System.out.println("                          :*                           *                         ");System.out.println("                       .iY5*       2. *" + "\33[36;50;4m" + "继续游戏" + "\33[0m" + "*         *                         ");System.out.println("                      :LdbP*                           *                         ");System.out.println("                     isPqKP*       3.  *" + "\33[36;50;4m" + "设置" + "\33[0m" + "*           *                         ");System.out.println("                   .rIPIIJP*                           *                         ");System.out.println("                  .7SgXS2S2*       4.  *" + "\33[36;50;4m" + "帮助" + "\33[0m" + "*           *                         ");System.out.println("                   .ivPXK57*                           *                         ");System.out.println("                      :r72K*       0.  *" + "\33[36;50;4m" + "退出" + "\33[0m" + "*           *                         ");System.out.println("                        ..:*****************************                         ");System.out.println("                                ....                                             ");}//标题界面}public static void chooseWarning() {{System.out.println("                                                                                 ");System.out.println("    ir   ::        ii              :       i                                  .  ");System.out.println("     jS   rJL      .B.             B2      Br     s77rri:irrrrrr7   Bi       B:1B");System.out.println("   :..DB.   iI...   .BL25KXKSX5KS  .Q  :B  M:     IIUULKB5j55SSqs  Ii  ... .B7 J.");System.out.println("   75JvvBBrBBi1USi   YB ........:  .B.  B  XE7ZB       :B        :YB  BU2vBQYvSL ");System.out.println("         S: J:   :    Bi          :sBBr:BqLB1  B       Bqi      .RB.:B    X      ");System.out.println("          Kv sj  Br *******************************************  g  Quu: 2 :J    ");System.out.println("           KY iv.B. *                                         * K  E  1 gr7:     ");System.out.println("            Bi .BB  *              " + "\33[36;50;1m" + "功能正在开发中!" + "\33[0m" + "              *5B:Y  r Bs.       ");System.out.println("            :B 1B1. *                                         *.:Mviu:D.::       ");System.out.println("            .Q.   rY*******************************************7r i2:iBi:        ");System.out.println("                           *****************************        .                 ");System.out.println("                           *       =请输入对应指令=       *                         ");System.out.println("                           *       1. *" + "\33[36;50;4m" + "开始游戏" + "\33[0m" + "*         *                         ");System.out.println("                          :*                           *                         ");System.out.println("                       .iY5*       2. *" + "\33[36;50;4m" + "继续游戏" + "\33[0m" + "*         *                         ");System.out.println("                      :LdbP*                           *                         ");System.out.println("                     isPqKP*       3.  *" + "\33[36;50;4m" + "设置" + "\33[0m" + "*           *                         ");System.out.println("                   .rIPIIJP*                           *                         ");System.out.println("                  .7SgXS2S2*       4.  *" + "\33[36;50;4m" + "帮助" + "\33[0m" + "*           *                         ");System.out.println("                   .ivPXK57*                           *                         ");System.out.println("                      :r72K*       0.  *" + "\33[36;50;4m" + "退出" + "\33[0m" + "*           *                         ");System.out.println("                        ..:*****************************                         ");System.out.println("                                ....                                             ");}//标题提示界面}public static void monsterInfo(int hp, String name, int level) {System.out.println("                           rJ                          7       ===================");//1System.out.println("                         .UR.    .i.                   Lq.     = 龙  = HP:   " + "\33[36;50;1m" + hp + "\33[0m" + "  =");System.out.println("                      .rXZKu    1RPdSJdZdi             JbKv    = " + name + "  = LV:    " + "\33[36;50;1m" + level + "\33[0m" + "   =");System.out.println("                  ..vdBBBBB1.   .MPKbdbSgQ1:          rBBBQI:  ===================");System.out.println("                .7IBBBQBRBBRv     ivQDSS1E2SQi       :gBBBBBRU:                   ");//5System.out.println("               rPBBBBgZgQQQBI:       1gZgD.         .LBQBgQBBBQI7.                ");System.out.println("             :XBBBRDddPgQQMBI7        iQPYJ         :BQQBRgZgBQBBDr               ");System.out.println("            ubBBQZEPZPERBRMBgrL.       I7rS.       .vBQQBgZPdPDgBBZi              ");System.out.println("           iPBBMbZZDEEdBQRMQBBBBZ1:    1r7JL     iJ1gBZBQMPEdZbddBBb.             ");System.out.println("           PBBgZRBBBBDgQBgMEgQBBBBBP7i.Yv7vs :.7QBBQBgEQQEDRBggEEdBBX             ");//10System.out.println("          vBBBBBBgjrsBgBQRdEdDRBBBBBgUKvrsIUIqjBBBBBQgbBQRBgPBBBgDEBBv            ");System.out.println("          QBBQI.     :BBBgBBBQqLsjJsi7v7777r7v7rs25YYZQBBBv   JYBBQQBq.           ");System.out.println("         rBBr         iBBB1.:q::PPPdSLr77jsusvrPDKKJ::sBB    Yq: iMBQdr           ");System.out.println("         5Bi           SB   iivBB:rQs77Jur::i7YZZ LBgvi7v.   XQi   BBP:           ");System.out.println("         Bb              i11Lvq2   Lr717      .jr  . :q77PQ: Z7.   :BK            ");//15System.out.println("         :               DBqvqr   X77ui ......  d     gjLQr iBr 7Y  Bi            ");}public static void playerInfo1(int a) {System.out.print("* 玩 家 || HP:" + "\33[36;50;1m" + a + "\33[0m" + "   *");}public static void playerInfo2(int a, int b) {System.out.print("* LV: " + "\33[36;50;1m" + a + "\33[0m" + "|| MP:" + "\33[36;50;1m" + b + "\33[0m" + "   *");}public static void monsterAttack1(String a, int b) {System.out.println("                  受到龙" + a + "的攻击Hp-" + "\33[31;49;1m" + b + "\33[0m" + "                            ");}public static void baseControl() {System.out.println("*********************************************************************************");//20System.out.println("*                                   请输入您的选择:                                *");System.out.println("*                                                                                 *");System.out.println("*      1." + "\33[36;50;4m" + "攻击" + "\33[0m" + "                                         2." + "\33[36;50;4m" + "道具" + "\33[0m" + "                        *");System.out.println("*      3." + "\33[36;50;4m" + "技能" + "\33[0m" + "                                         4." + "\33[36;50;4m" + "逃跑" + "\33[0m" + "                       *");System.out.println("**********************************************************************************");//25System.out.print("                                      ");//24}public static void skill(String a, String b, String c, int mode) {System.out.println("*********************************************************************************");//20System.out.println("*                                请输入您的选择:                                   *");System.out.println("*                                                                                 *");System.out.println("*      1." + "\33[36;50;4m" + a + "\33[0m" + "(" + skillCost1[mode] + ")                                    2." + "\33[36;50;4m" + b + "\33[0m" + "(" + skillCost2[mode] + ")                      *");System.out.println("*      3." + "\33[36;50;4m" + c + "\33[0m" + "(" + skillCost3[mode] + ")                                    0." + "\33[36;50;4m" + "(返回)" + "\33[0m" + "                    *");System.out.println("**********************************************************************************");//25System.out.print("                                      ");//24}public static void boxQueue(int args[], int a[]) {int empty = 0;for (int i = 0; i < args.length; i++) {if (a[i] == 0) {for (int j = i; j < args.length - 1; j++) {args[j] = args[j + 1];a[j] = a[j + 1];//b[j] = b[j - 1];empty = j + 1;}args[empty] = 0;a[empty] = 0;}}}public static void boxEmpty(int a, int a1, int b, int b1, int c, int c1) {// String[] bag = {"(空)", "小血瓶", "小魔法瓶", "月光·符石", "血瓶", "魔法瓶", "???", "???"};System.out.println("*********************************************************************************");//20System.out.println("*                                请输入您的选择:                                   *");System.out.println("*      1." + "\33[36;50;4m" + bag[bagFull[0]] + "\33[0m" + "(" + bagNum[0] + ")                                      2." + "\33[36;50;4m" + bag[b] + "\33[0m" + "(" + b1 + ")                      *");System.out.println("*      3." + "\33[36;50;4m" + bag[bagFull[2]] + "\33[0m" + "(" + bagNum[2] + ")                                      4." + "\33[36;50;4m" + bag[bagFull[3]] + "\33[0m"+"(" + +bagNum[3]+ ")                    *");System.out.println("*      5." + "\33[36;50;4m" + bag[bagFull[4]] + "\33[0m" + "(" + bagNum[4] + ")                                      0." + "\33[36;50;4m" + "(返回)" + "\33[0m" + "                    *");System.out.println("**********************************************************************************");//25System.out.print("                                      ");//24}public static void trueEffect(int[] a, int[] b, int c, int[] mode) {int[] arr = {0, 40, 40, 0, 80, 80, 0};if (c == 1 || c == 4) {a[0] += arr[c];} else if (c == 2 || c == 5) {b[0] += arr[c];} else if (c == 3) {mode[0] = 1;} else if (c == 7) {mode[0] = 0;} else ;System.out.println(mode[0]);}public static void useBox(int a,int choose) {if (a > 0) {System.out.println("                     使用了" + bag[a] + "!                     ");bagNum[choose]--;} else System.out.println("                     暂未获得道具!                     ");}public static void useEffect(int i) {String[] effect = {"", "血量恢复!Hp+" + "\33[34;50;1m" + "40" + "\33[0m", "魔法恢复!Mp+" + "\33[34;50;1m" + "40" + "\33[0m", "获得了" + "\33[35;50;1m" + "月光之力" + "\33[0m" + "的庇佑!" + "\33[36;50;1m" + "技能" + "\33[0m" + "获得强化!", "血量恢复!Hp" + "\33[34;50;1m" + "80" + "\33[0m", "魔法恢复!Mp" + "\33[34;50;1m" + "80" + "\33[0m", "", "", ""};System.out.println("                            " + effect[i] + "                              ");}public static void skillAttack(String args, int a, int r) {if (r >= 20) {System.out.println("            使用了" + "\33[31;49;1m" + args + "\33[0m" + "!造成了" + "\33[31;49;1m" + "暴击" + "\33[0m" + "!敌方hp-" + "\33[31;49;1m" + a + "\33[0m" + "                   ");} else {System.out.println("            使用了" + "\33[31;49;1m" + args + "\33[0m" + "!敌方hp-" + "\33[31;49;1m" + a + "\33[0m" + "                   ");}}public static void hpRecovery() {//playerHp[0] = playerHpMax[playerLevel - 1];playerMp[0] = playerMpMax[playerLevel - 1];}public static void waterRecovery() {//playerHp[0] = Math.min((playerHp[0] + playerHpMax[playerLevel - 1] / 2), playerHpMax[playerLevel - 1]);playerMp[0] = Math.min((playerMp[0] + playerMpMax[playerLevel - 1] / 2), playerMpMax[playerLevel - 1]);}public static void levelUp(String a) {System.out.println("*********************************************************************************");//20System.out.println("*                            等级提升!获得了" + "\33[33;50;1m" + "新技能" + "\33[0m" + "《" + "\33[37;50;4m" + a + "\33[0m" + "》                          *");System.out.println("*                          最大Hp提升了?!最大Mp提升了?!                                          *");System.out.println("*                                                                                 *");System.out.println("*                                  " + "\33[36;50;1m" + "输入任意字符继续:" + "\33[0m" + "                                *");System.out.println("**********************************************************************************");//25System.out.print("                                      ");//24}public static void enterNext() {System.out.println("*********************************************************************************");//20treasure(4, bagFull, bagNum, 1, 1);//System.out.println("*                                获得了" + "\33[33;50;1m" + "物品" + "\33[0m" + " " + "\33[37;50;4m" + a + "\33[0m" + "                          *");//System.out.println("*                                    " + "\33[36;50;1m" + "即将进入下一关" + "\33[0m" + "                                  *");System.out.println("*                                                                                 *");System.out.println("*                                  " + "\33[36;50;1m" + "输入任意字符继续:" + "\33[0m" + "                                *");System.out.println("**********************************************************************************");//25System.out.print("                                      ");//24}public static void titleImg() {System.out.println("                                                                                 ");//1System.out.println("    ir   ::        ii              :       i                                  .  ");System.out.println("     jS   rJL      .B.             B2      Br     s77rri:irrrrrr7   Bi       B:1B");System.out.println("   :..DB.   iI...   .BL25KXKSX5KS  .Q  :B  M:     IIUULKB5j55SSqs  Ii  ... .B7 J.");System.out.println("   75JvvBBrBBi1USi   YB ........:  .B.  B  XE7ZB       :B        :YB  BU2vBQYvSL ");//5System.out.println("         S: J:   :    Bi          :sBBr:BqLB1  B       Bqi      .RB.:B    X      ");System.out.println("          Kv sj  Br    22UII5I21B   .u :B: vr .Q      .B QB:     g  Quu: 2 :J    ");System.out.println("           KY iv.B.             vS   B  vr 7U.gr      qY  :BP   K  E  1 gr7:     ");System.out.println("            Bi .BB   iiYUu212uUr B   Ji r1 iM:::.     B     . .5B:Y  r Bs.       ");System.out.println("            :B 1B1.  :B          Mi :Dgi.B  .  B.    rD      rr.:Mviu:D.::       ");System.out.println("            .Q.   rYuYB.     .uv7B: .    7L::iJv  .  Q.        7r i2:iBi:        ");System.out.println("                                   ...:iii71jSj7jjYLr7.        .                 ");System.out.println("                               .i7vKQQQggDEPZggPbqbPPjj:                         ");System.out.println("                            :7YEQBBguv5dqPZZj::SIXUuIPs.                         ");System.out.println("                          :vEdDQI:i:  ir77r72vLK2S1iIK7                          ");System.out.println("                       .iY5PdMS.   rrrR..:iIUJ2P7XIsI2:                          ");System.out.println("                      :LdbPduiqirri: .Bi .::irYIvI5KKi                           ");System.out.println("                     isPqKPv.:EPLr:.  BB.  .irvKLKPSi                            ");System.out.println("                   .rIPIIJPJ5ZJri::   :Q  :ijbbYsZY.                             ");System.out.println("                  .7SgXS2S2K27i:..:.:. :..:r71PdIr                               ");System.out.println("                   .ivPXK57Y1YurrvL:7vr::iYvJES7.                                ");System.out.println("                      :r72KZqXdZEgUsXg1EXKq17i.                                  ");System.out.println("                        ..:ir7JSPKPU2js7r:.                                      ");System.out.println("                                ....                                             ");//24System.out.println("                               " + "\33[31;49;1m" + "*输入任意字符开始游戏*" + "\33[0m" + "                                ");}public static void main(String[] args) {int[] playerHp = {100};int[] playerMp = {100};int[] exp = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};int[] expUp = {20, 50, 90, 140, 200, 270, 350, 440, 540, 660};int[] i = {10, 15, 20, 28, 32, 40, 45, 50, 55, 60};int[] monsterLevel = {1, 2, 3, 4, 5, 6, 7, 8, 9};int[] monsterHpMax = {30, 60, 98, 120, 160, 200, 200, 200, 200, 200};int[] monsterHp = {30, 60, 98, 120, 160, 200, 200, 200, 200, 200};int round = 0;int[] hurt = new int[3];String[] monsterName = {"兵", "卫", "王", "影", "若", "陀"};String[][][] skillName1 = {{{}, {"登龙剑", "(空)", "(空)", ""}, {"登龙剑", "治疗术", "(空)", "月光·符石"}, {"登龙剑", "治疗术", "强力防御", "月光·符石"}}, {{}, {"月光·登龙剑", "愈疗术", "月光·护盾", "光弧·符石"}, {"月光·登龙剑", "愈疗术", "月光·护盾", "光弧·符石"}}};int[] skillRecovery = {50, 60, 70, 100};int[] mode = {0, 0};int floor = 0;//int defend = 0;Scanner zhiLing = new Scanner(System.in);Random damage = new Random();Scanner startG = new Scanner(System.in);Scanner skillNum = new Scanner(System.in);Scanner boxNum = new Scanner(System.in);//标题titleImg();//进入界面System.out.print("                                      ");//24String startA = startG.next();chooseStart();main:while (true) {int a = zhiLing.nextInt();switch (a) {case 1:case 2:start:while (playerHp[0] >= 0) {System.out.println("城镇界面");createFloor(floorEvent, floor);     //生成地图int chooseM = zhiLing.nextInt() -1;if (chooseM >= 6) System.out.println("勇者可能打算原地休息一会");else if (chooseM==-1) {if (floor>=1)floor--;System.out.println("返回上一层");}else {if (eventNum[floorEvent[floor][chooseM]] >= 31 && eventNum[floorEvent[floor][chooseM]] <= 50) {//while (){// playerLevel = round + 1;{monsterHp[floor] = monsterHpMax[floor];monsterInfo(monsterHp[floor], monsterName[round], floor);System.out.println("* * * * * * * * * *       rI 2.  i17sL ........ .P     .    Kv::7P  P             ");playerInfo1(playerHp[0]);System.out.println("           ..:Y7JJ ........ .dv.        i.i.                  ");playerInfo2(playerLevel, playerMp[0]);System.out.println("          .:isrrvZ .......::7Z7i.:       Q7                   ");}//界面刷新csm:while (monsterHp[floor] >= -1 && playerHp[0] >= -1) {int damage1 = damage.nextInt(20) + 11;int critic = damage.nextInt(40) + 1;int damage2 = critic + 10;//  int damage2 = damage.nextInt(40) + 60;hurt[0] = damage.nextInt(9) + 7;hurt[1] = damage.nextInt(9) + 17;hurt[2] = damage.nextInt(9) + 21;baseControl();//基础选择栏int playDo = zhiLing.nextInt();switch (playDo) {case 1:monsterHp[floor] -= damage1;if (monsterHp[floor] <= 0) {{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("              攻击!敌方hp-" + "\33[31;49;1m" + damage1 + "\33[0m" + "                               ");playerInfo2(playerLevel, playerMp[0]);exp[playerLevel] += i[floor] + r.nextInt(4);System.out.println("   成功击败了龙" + monsterName[round] + "!获得了" + i[floor] + "点经验值!                        ");enterNext();}//未暴击技能击杀事件startA = startG.next();if (exp[playerLevel] >= expUp[playerLevel]) {if (playerLevel < 9) playerLevel++;levelUp(skillName1[mode[0]][playerLevel][playerLevel - 1]);startA = startG.next();}break csm;}//攻击击杀事件playerHp[0] -= hurt[round];{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("              攻击!敌方hp-" + "\33[31;49;1m" + damage1 + "\33[0m" + "                               ");playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);}//攻击事件break;case 2: {monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("                 勇者准备使用道具!                     ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");boxEmpty(bagFull[0], bagNum[0], bagFull[1], bagNum[1], bagFull[2], bagNum[2]);}//事件//选择道具csb:while (true) {int chooseBox = boxNum.nextInt();switch (chooseBox) {case 0:monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("*=                 勇者放弃了使用道具                     ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");System.out.println("*********************************************************************************");//20break csb;case 1:case 2: case 3:case 4:case 5:if (bagFull[chooseBox-1] > 0 && bagNum[chooseBox-1] > 0) {trueEffect(playerHp, playerMp, bagFull[chooseBox-1], mode);monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);useBox(bagFull[chooseBox-1], chooseBox-1);playerInfo2(playerLevel, playerMp[0]);useEffect(bagFull[chooseBox-1]);boxQueue(bagFull, bagNum);break csb;}//事件//选择道具default: {monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("                     暂未获得道具!                     ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");boxEmpty(bagFull[0], bagNum[0], bagFull[1], bagNum[1], bagFull[2], bagNum[2]);}//事件//选择道具}//事件//选择道具}//道具break;case 3: {monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("                 勇者准备使用技能!                     ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");skill(skillName1[mode[0]][playerLevel][0], skillName1[mode[0]][playerLevel][1], skillName1[mode[0]][playerLevel][2], mode[0]);}//事件//选择技能csk:while (true) {int chooseSkill = skillNum.nextInt();switch (chooseSkill) {case 1:if (playerMp[0] >= skillCost1[mode[0]]) {monsterHp[floor] -= damage2;//登龙剑playerMp[0] -= skillCost1[mode[0]];if (damage2 >= 30) {if (monsterHp[floor] <= 0) {{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);skillAttack(skillName1[mode[0]][playerLevel][0], damage2, critic);playerInfo2(playerLevel, playerMp[0]);exp[playerLevel] += i[floor] + r.nextInt(4);System.out.println("   成功击败了龙" + monsterName[round] + "!获得了" + i[floor] + "点经验值!                        ");enterNext();}//未暴击技能击杀事件startA = startG.next();if (exp[playerLevel] >= expUp[playerLevel]) {if (playerLevel < 9) playerLevel++;levelUp(skillName1[mode[0]][playerLevel][playerLevel - 1]);startA = startG.next();}break csm;} elseplayerHp[0] -= hurt[round];{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);skillAttack(skillName1[mode[0]][playerLevel][0], damage2, critic);playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);}//暴击技能事件} else {if (monsterHp[floor] <= 0) {{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);skillAttack(skillName1[mode[0]][playerLevel][0], damage2, critic);playerInfo2(playerLevel, playerMp[0]);//  System.out.println("                          成功击败了龙" + monsterName[round] + "!                        ");exp[playerLevel] += i[floor] + r.nextInt(4);System.out.println("   成功击败了龙" + monsterName[round] + "!获得了" + i[floor] + "点经验值!                        ");enterNext();}//未暴击技能击杀事件startA = startG.next();if (exp[playerLevel] >= expUp[playerLevel]) {if (playerLevel < 9) playerLevel++;levelUp(skillName1[mode[0]][playerLevel][playerLevel - 1]);startA = startG.next();}break csm;} elseplayerHp[0] -= hurt[round];{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);skillAttack(skillName1[mode[0]][playerLevel][0], damage2, critic);playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);}//未暴击技能事件}break csk;}//登龙剑{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("               Mp不足以释放技能!                 ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");skill(skillName1[mode[0]][playerLevel][0], skillName1[mode[0]][playerLevel][1], skillName1[mode[0]][playerLevel][2], mode[0]);break;}//无Mpcase 2:if (playerLevel >= 2 && playerMp[0] >= skillCost2[mode[0]]) {playerHp[0] += skillRecovery[mode[0]];playerHp[0] -= hurt[round];playerMp[0] -= skillCost2[mode[0]];{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("            使用了" + "\33[34;50;1m" + skillName1[mode[0]][playerLevel][1] + "\33[0m" + "!HP+" + "\33[34;50;1m" + skillRecovery[mode[0]] + "\33[0m" + "!                                 ");playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);}//治疗术break csk;}//恢复技能{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("               Mp不足以释放技能!                 ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");skill(skillName1[mode[0]][playerLevel][0], skillName1[mode[0]][playerLevel][1], skillName1[mode[0]][playerLevel][2], mode[0]);break;}//无Mpcase 3:if (playerLevel >= 3 && playerMp[0] >= skillCost2[mode[0]]) {playerMp[0] -= skillCost3[mode[0]];playerHp[0] -= hurt[round];monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("            使用了" + "\33[36;50;1m" + skillName1[mode[0]][playerLevel][2] + "\33[0m" + "!防御力提升" + "\33[34;50;1m" + "5" + "\33[0m" + "!                                 ");playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);break csk;}//防御技能{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("               Mp不足以释放技能!                 ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");skill(skillName1[mode[0]][playerLevel][0], skillName1[mode[0]][playerLevel][1], skillName1[mode[0]][playerLevel][2], mode[0]);break;}//无Mpcase 4: //技能页面default: {monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("               Mp不足以释放技能!                 ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");skill(skillName1[mode[0]][playerLevel][0], skillName1[mode[0]][playerLevel][1], skillName1[mode[0]][playerLevel][2], mode[0]);break;}//事件//选择技能case 0:monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("                 勇者放弃了使用技能                     ");playerInfo2(playerLevel, playerMp[0]);System.out.println("                                                              ");break csk;}}break;case 4:System.out.println("逃跑了!");break csm;//逃跑事件default:playerHp[0] -= hurt[round];{monsterInfo(monsterHp[floor], monsterName[round], floor+1);System.out.println("* * * * * * * * * * ==============================================================");playerInfo1(playerHp[0]);System.out.println("                  勇者使用了发呆!但无事发生                          ");playerInfo2(playerLevel, playerMp[0]);monsterAttack1(monsterName[round], hurt[round]);}//发呆事件3}//主程序}//  round++;// exp[playerLevel]+=i[floor]+r.nextInt(4);经验值}} else if (eventNum[floorEvent[floor][chooseM]] >= 1 && eventNum[floorEvent[floor][chooseM]] <= 10) {System.out.println(eventNum[floorEvent[floor][chooseM]]);treasure(eventNum[floorEvent[floor][chooseM]], bagFull, bagNum, floor, chooseM);} else if (eventNum[floorEvent[floor][chooseM]] >= 11 && eventNum[floorEvent[floor][chooseM]] <= 20) {hpRecovery();}//System.out.println("获取属性");else if (eventNum[floorEvent[floor][chooseM]] >= 21 && eventNum[floorEvent[floor][chooseM]] <= 30)System.out.println("交谈");else if (eventNum[floorEvent[floor][chooseM]] == 50) {if (floor>=1)System.out.println("返回上一层");floor--;}else if (eventNum[floorEvent[floor][chooseM]] == 0 || eventNum[floorEvent[floor][chooseM]] == 52)nothing();else if (eventNum[floorEvent[floor][chooseM]] == 51) if (floor <= 8) floor++;else System.err.println("Event Error");}//startEvent(floorEvent,floor,walk);//事件,调用其他方法//if (eventNum[floorEvent[floor][chooseM]] == 0) break start;}break main;case 3:case 4:chooseWarning();break;case 0:break main;default:System.out.println("功能开发中!");}}if (playerHp[0] >= 1) {System.out.println("                 *恭喜你,打败了龙王!成功拯救了阿卡亚地下城,游戏结束~*");System.out.println("                          后续关卡和玩法正在开发中,敬请期待!");System.out.println();System.out.println("**********************************************************************************");//25*/} else System.out.println("*您在与巨龙的战斗中遗憾落败,游戏结束!*");}
}

用简单Java代码尝试在控制台写游戏(附源码)相关推荐

  1. 拼图游戏java代码_java设计:拼图游戏 完整源码

    //July/设计. //我对有的老师,很无语./06.04/. //Puzzle.java ----------------------------------------------------- ...

  2. JAVA文件上传详解(附源码)

    文章目录 JAVA文件上传详解(附源码) 1.准备工作 2.使用类介绍 FileItem类 ServletFileUpload类 3.代码编写 JAVA文件上传详解(附源码) 在web应用中,文件上传 ...

  3. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)

    前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...

  4. python跑酷游戏源码_Phaser.js实现简单的跑酷游戏附源码下载

    采用的物理引擎是Phaser.js 在这里对此引擎不做过多介绍(因为我也是小白,嘿嘿) 效果展示: 源码(详细源码图片资源可点击文章下方或屏幕右上方的github链接进行clone) 1.创建游戏舞台 ...

  5. java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载

    运行于手机上的中国象棋游戏,鉴于JAVA J2ME技术,本游戏分服务端和客户端,导入JAR包即可在手机上运行,内有开发文档和运用说明. Java手机网络版象棋游戏附源码 (1 folders, 2 f ...

  6. Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW)

    Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...

  7. JAVA计算机毕业设计校园订餐系统(附源码、数据库)

    JAVA计算机毕业设计校园订餐系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  8. JAVA计算机毕业设计网课系统(附源码、数据库)

    JAVA计算机毕业设计网课系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  9. JAVA计算机毕业设计漫画网站系统(附源码、数据库)

    JAVA计算机毕业设计漫画网站系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

最新文章

  1. 六大主题报告,四大技术专题,AI开发者大会首日精华内容全回顾
  2. 逼疯懒癌:“机器学习100天大作战”正式开始!
  3. linux查询锁定时间,Linux限制远程登陆尝试密码次数及锁定时间
  4. mysql选定数据库_mysql数据库学习――2,数据库的选定,创建,删除和变更_MySQL...
  5. 摇滚吧HTML5!Jsonic超声波前端交互!
  6. apply通过实例理解
  7. python需要编译器吗_是否需要“使用严格”的Python编译器?
  8. LINQ体验(6)——LINQ语句之Join和Order By
  9. Centos7 释放内存
  10. sass封装h5适配文件
  11. 支付宝发布“城市生活周”电影票预售成绩单:预售票房已涨20倍
  12. CGLIB 和 JDK生成动态代理类的区别(转)
  13. hcfax2e伺服驱动器说明书_ABB用户手册MicroFlexe150伺服驱动器.pdf
  14. html怎么置顶图像,css怎么固定图片位置不变?
  15. android 视频连续播放,VideoView实现视频无缝连续播放
  16. Crowd Counting P2PNet 复现
  17. 快手公布于香港联交所主板上市计划详情,拟融资394.77亿港元
  18. 【线上沙龙】WeTest携手Testerhome共探DevOps下的质量保障
  19. python_生成器简介
  20. 读源码(四)—— js Promise

热门文章

  1. 案例研究 | 你真的在你的团队中实现过设计冲刺吗?
  2. 衬衫怎样搭配好看?韩版衬衫女装搭配小技巧
  3. ZigBee_CC2530_0BH_动态切换PANID
  4. eclipse 代码颜色
  5. CentOS-7-x86_64-Minimal-1908 yum安装报错(无法解析主机问题)
  6. Virtualbox 动态虚拟磁盘文件.vdi文件压缩瘦身方法
  7. 华硕rog枪神5和魔霸5有什么区别 哪个好详细性能配置对比
  8. 华为天才少年自制百大Up奖杯,网友:技术难度不高,侮辱性极强
  9. GOOGLE无法访问的解决
  10. 前端Token存储问题