Java文字格斗小游戏

编程入门 行业动态 更新时间:2024-10-11 21:29:03

Java文字格斗<a href=https://www.elefans.com/category/jswz/34/1769974.html style=小游戏"/>

Java文字格斗小游戏

Java文字格斗小游戏

实现思路:

  1. 玩家输入想要创建的游戏角色的名字、血量、性别,由程序随机生成外貌并打印角色信息。
  2. 定义一个攻击方法,随机生成攻击招数。
  3. 生成随机伤害,并计算每次的剩余血量。
  4. 根据剩余血量判断游戏角色的受伤程度以及攻击结果。
  5. 最后打印格斗结果。

代码实现

描述内容
//外貌(随机生成):String[] boyfaces= {"风流俊雅","气宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};String[] girlfaces ={"美奂绝伦","沉鱼落雁","婷婷玉立","身材娇好","相貌平平","相貌简陋","惨不忍睹"};//attack 攻击描述:String[] attacks_desc={"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//injured 受伤描述:String[] injureds_desc={"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果『轰』的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};
1.JavaBean类
package com.java.FigtingTyGame;import java.util.Random;public class Role {private  String name;private  int blood;private  char gender;private  String face;//外貌(随机生成):String[] boyfaces= {"风流俊雅","气宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};String[] girlfaces ={"美奂绝伦","沉鱼落雁","婷婷玉立","身材娇好","相貌平平","相貌简陋","惨不忍睹"};//attack 攻击描述:String[] attacks_desc={"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//injured 受伤描述:String[] injureds_desc={"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果『轰』的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};/*** 无参构造*/public Role() {}/*** 有参构造* @param name* @param blood* @param gender*/public Role(String name, int blood, char gender ) {this.name = name;this.blood = blood;this.gender = gender;//随机长相setFace(gender);}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return blood*/public int getBlood() {return blood;}/*** 设置* @param blood*/public void setBlood(int blood) {this.blood = blood;}/*** 获取* @return gender*/public char getGender() {return gender;}/*** 设置* @param gender*/public void setGender(char gender) {this.gender = gender;}/*** 获取* @return face*/public String getFace() {return face;}/*** 设置* @param gender*/public void setFace(char gender) {//长相是随机的,且根据性别的不同,所提供的参数也不同Random r = new Random();if (gender=='男'){//从boyfaces中随机长相int index = r.nextInt(boyfaces.length);this.face = boyfaces[index];} else if (gender=='女') {//从boyfaces中随机长相int index = r.nextInt(girlfaces.length);this.face = girlfaces[index];}else {this.face = "无脸人";}}/*** 展示角色 信息*/public void showRoleInfo(){System.out.printf("姓名:%s\n",getName());System.out.printf("血条:%d\n",getBlood());System.out.printf("性别:%s\n",getGender());System.out.printf("样貌:%s\n",getFace());}/*** 攻击*/public void Attacks(Role role){//生成随机招数Random r = new Random();String KongFu =attacks_desc[ r.nextInt(attacks_desc.length)];System.out.printf(KongFu,this.getName(),role.getName());System.out.println();//产生随机伤害int Hurt = r.nextInt(21);//计算剩余的血量int RemainBoold = role.getBlood() - Hurt;//对被攻击者的血量做一个计算RemainBoold = RemainBoold < 0 ? 0 : RemainBoold;//修改被攻击者的血量role.setBlood(RemainBoold);/*** 受伤描述* 血量 > 90 索引 0* 90 >= 血量 > 80 索引 1* 80 >= 血量 > 70 索引 2* 70 >= 血量 > 60 索引 3* 60 >= 血量 > 40 索引 4* 40 >= 血量 > 20 索引 5* 20 >= 血量 > 10 索引 6* 10 >= 血量 > 5  索引 7* 血量 < 5  索引 8*/if (role.getBlood() > 90){System.out.printf(injureds_desc[0],role.getName());}else if (role.getBlood() > 80){System.out.printf(injureds_desc[1],role.getName());}else if (role.getBlood() > 70){System.out.printf(injureds_desc[2],role.getName());}else if (role.getBlood() > 60){System.out.printf(injureds_desc[3],role.getName());}else if (role.getBlood() > 40){System.out.printf(injureds_desc[4],role.getName());}else if (role.getBlood() > 20){System.out.printf(injureds_desc[5],role.getName());}else if (role.getBlood() > 10){System.out.printf(injureds_desc[6],role.getName());}else if (role.getBlood() > 5){System.out.printf(injureds_desc[7],role.getName());}else {System.out.printf("%s很危险",role.getName());}System.out.println();}}
2.main
package com.java.FigtingTyGame;
//Author:Yhimport java.util.Scanner;/*** Java文字格斗小游戏*/
public class FigtingTyGame {public static void main(String[] args) {//生成第一个角色System.out.println("请输入玩家的名字:");String name = getPlayerName();System.out.println("请输入玩家的血量:");int boold = getBd();System.out.println("请输入玩家的性别:");char sex = getPlayerGender();Role role1 = new Role(name, boold, sex);//生成第二个角色System.out.println("==================");System.out.println("请输入玩家的名字:");String name1 = getPlayerName();System.out.println("请输入玩家的血量:");int boold1 = getBd();System.out.println("请输入玩家的性别:");char sex1 = getPlayerGender();Role role2 = new Role(name1, boold1, sex1);System.out.println();role1.showRoleInfo();System.out.printf("\n");role2.showRoleInfo();System.out.println();while (true) {//role1 attacking role2role1.Attacks(role2);//血量判断if (role2.getBlood() == 0) {System.out.println();System.out.println(role1.getName() + "K.O了" + role2.getName() + "!");break;}//role2 attacking role1role2.Attacks(role1);//血量判断if (role1.getBlood() == 0) {System.out.println();System.out.println(role2.getName() + "K.O了" + role1.getName() + "!");break;}}}/*** 获取姓名** @return*/public static String getPlayerName() {Scanner scan = new Scanner(System.in);String name = scan.nextLine();return name;}public static int getBd() {Scanner scan = new Scanner(System.in);String bd1 = scan.nextLine();int bd = Integer.parseInt(bd1);return bd;}/*** 获取性别** @return*/public static char getPlayerGender() {Scanner scan = new Scanner(System.in);char gender = scan.nextLine().charAt(0);return gender;}
}

更多推荐

Java文字格斗小游戏

本文发布于:2024-03-11 19:24:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729724.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小游戏   文字   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!