控制台小
游戏 class YZDEL\r\n{\r\n public static void main(String[] args)\r\n {\r\njava.util.Random Shiji = new java.util.Random()\r\n java.util.Scanner Shuru = new java.util.Scanner(System.in)\r\n java.util.Scanner Nandu = new java.util.Scanner(System.in)\r\n int YingxHP = 20\r\n int YingxMP = 0\r\n int MogHP = 20\r\n int MogMP = 0\r\n int MogDo = 0\r\n int fangyu = 0\r\n System.out.println("┏━━━━_┏━━┣┣┓ _ ┓┏━┳━┳┓┓━┓ ")\r\n System.out.println("┏┣━━━┓┏━━┣┣┓ ┃┏ ┃ ┃┓┃ _ ")\r\n System.out.println("┣┣━━━┫_━━┻__ ┃_┓┃ ┃_┏━┣━━┓")\r\n System.out.println("┣┣━━━┫┏━━━━┓_━━┣━┛┗━┻━┻┛┃┃")\r\n System.out.println("┏┣━━━┓┣━━━━┫ ┃┃┃┗__┃嫌配拦┃┣━_")\r\n System.out.println(" ┛┗_┗━━━━_┗___━━┛┛┗━__━┛")\r\n System.out.println()\r\n System.out.println(" 作者:天狐空幻")\r\n System.out.println()\r\n System.out.println("说明:勇者的 *** 作方式为以下所示:")\r\n System.out.println(" 使用攻击需消耗1MP 伤害1HP")\r\n System.out.println(" 使用蓄力可增加1MP 伤害0HP")\r\n System.out.println(" 使用躲闪需消耗0MP 伤害0HP 躲避攻击")\r\n System.out.println(" 使用重击需消耗3MP 伤害2HP 防御无效")\r\n System.out.println(" 恶龙攻击力高, 注意防御是取胜的关键")\r\n System.out.println(" 恶龙卖肆MP达到4时可能会放出火焰无法躲避")\r\n System.out.println(" 准备说明完毕,那么让我们来挑战恶龙吧!")\r\n System.out.println("==================================")\r\n //难度选择\r\n System.out.println("请选择难度")\r\n System.out.println("1.娱乐 2.挑芹胡战 3.噩梦")\r\n int ND = Nandu.nextInt()\r\n System.out.println("==================================")\r\n while(true) \r\n { \r\n //HP,MP的显示 \r\n System.out.print("勇者: ")\r\n System.out.print(" HP ")\r\n for(int x=YingxHPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int x=YingxMPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxMP)\r\n System.out.println()\r\n System.out.print("恶龙: ")\r\n System.out.print(" HP ")\r\n for(int y=MogHPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int y=MogMPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogMP)\r\n System.out.println()\r\n System.out.println("==================================")\r\n //胜利判定 \r\n if(YingxHP2&&MogMP>2) MogDo = 2\r\n else if(MogMP0) MogDo=2 \r\n if(Do==2&&MogMP==0) MogDo=0\r\n if(Do==3&&MogMP=4) MogDo=3}//变态判定。。 \r\n //战斗分析\r\n //防御 \r\n if(Do==3) {fangyu=1System.out.println("你灵巧的躲避攻击!")}\r\nif(MogDo==1) {fangyu=1System.out.println("恶龙进行防御!")}\r\n //角色判定 \r\n if(Do==1&&YingxMP==0) {System.out.println("MP不足!")}\r\n if(Do==1&&YingxMP>0) {\r\nif(fangyu==0) {MogHP=MogHP-1YingxMP=YingxMP-1System.out.println("你发动攻击!")}\r\nif(fangyu==1) {YingxMP=YingxMP-1System.out.println("你的攻击被格挡!")}} \r\n if(Do==2) {YingxMP=YingxMP+1System.out.println("你进行蓄力!")}\r\n if(Do==4&&YingxMP2) {MogHP=MogHP-2YingxMP=YingxMP-3System.out.println("你发动重击!")}\r\n if(Do>4) System.out.println("你不知所措...")\r\n //敌人判定 \r\n if(MogDo==2&&MogMP==0) {System.out.println("恶龙在发呆!")}\r\n if(MogDo==2&&MogMP>0) {\r\nif(fangyu==0) {YingxHP=YingxHP-2MogMP=MogMP-1System.out.println("恶龙发动攻击!")}\r\nif(fangyu==1) {MogMP=MogMP-1System.out.println("恶龙的攻击被躲开了!")}} \r\n if(MogDo==0) {MogMP=MogMP+1System.out.println("恶龙进行蓄力!")} \r\n if(MogDo==3&&MogMP3) {YingxHP=YingxHP-4MogMP=MogMP-4System.out.println("恶龙发动火焰吐吸!躲避不能!")} \r\n //结束 \r\n fangyu = 0\r\n MogDo = 0\r\n System.out.println("____________________")\r\n System.out.println()\r\n System.out.println("==================================") }\r\n }\r\n}
1、设计游戏,首先就要设计界面。首先看一下我设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,盯衫右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
2、所以我们需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,我们要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
3、定义我们的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,我们需要定义二维数组,保存网格凯逗腔信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
4、食物的位置信息是二维的,所以我简单定义了一个类用来保存二维信息。
5、接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。
6、开始游戏后,我们指举定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。
评论列表(0条)