回合制游戏文字版(升级)

//在上一篇博客的基础上,加了细节的改动

//改动:添加了外貌,性别,招式的细节描绘;添加了个人信息展示界面

//一创建java文件1,命名为playGame

复制代码
package test2;

import java.util.Random;

public class playGame {
    //格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来
    //eg:姓名:乔峰 血量:100        姓名:鸠磨章 血量:100
    private String name;//姓名
    private int blood;//血量
    private char gender;//性别
    private String face;//长相
    String[] boyfaces={"风流俊雅","器宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};
    String[] girlfaces={"美色绝伦","沉鱼落雁","亭亭玉立","身材较好","相貌平平","相貌简陋","惨不忍睹"};
    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 playGame()
                  {

                  }

    public playGame(String name,int blood,char gender)
    {
        this.name=name;
        this.blood=blood;
        this.gender=gender;
 //face是随机长相,不是在创建对象的时候给的
        setFace(gender);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getBlood() {
        return blood;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }



    public String getFace() {
       return face;
    }

    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=='女')
                    {
                        //从girlfaces里随机长相
                                        int index=r.nextInt(girlfaces.length);
                                        this.face=girlfaces[index];

                    }
                    else
                    {
                        this.face="面目狰狞";
                    }
                }



    //展示人物信息
        public void showRoleInfo()
        {
            System.out.println("姓名为:"+getName());
            System.out.println("血量为:"+getBlood());
            System.out.println("性别为:"+getGender());
            System.out.println("长相为:"+getFace());

        }


    //定义攻击别人
    //谁攻击谁 r1攻击r2 r1调用者 攻击参数r2
    public void attack(playGame role)
    {//输出一个攻击的效果
        Random r=new Random();
    int index= r.nextInt(attacks_desc.length);
        String kungFu=attacks_desc[index];
            //1打别人的人,2挨揍的人
        System.out.printf(kungFu,this.getName(),role.getName());
        //计算造成的伤害1~20
        int hurt=r.nextInt(20)+1;
        //修改剩余血量  remainBoold(剩余血量)
        int remainBoold=role.getBlood()-hurt;
        //当血量为负数时,修整为0
        remainBoold=remainBoold<0?0:remainBoold;
        //修改role的血量
        role.setBlood(remainBoold);
        //受伤的描述
        //不做随机,做判断(因为伤害越来越重)
        //判断条件:血量>90 0索引描述
        //80~90 1
        //70~80 2
        //60~70 3
        //40~60 4
        //20~40 5
        //10~20 6
        //小于10 7
        if(remainBoold>90)
        {
            System.out.printf(injureds_desc[0],role.getName());}
        else if(remainBoold>80&& remainBoold<=90)
        {
            System.out.printf(injureds_desc[1],role.getName());
        }
        else if(remainBoold>70&& remainBoold<=80)
        {System.out.printf(injureds_desc[2],role.getName());}
        else if(remainBoold>70&& remainBoold<=80)
        {System.out.printf(injureds_desc[3],role.getName());}
        else if(remainBoold>60&& remainBoold<=70)
        {System.out.printf(injureds_desc[4],role.getName());}
        else if(remainBoold>40&& remainBoold<=60)
        {System.out.printf(injureds_desc[5],role.getName());}
        else if(remainBoold>20&& remainBoold<=40)
        {System.out.printf(injureds_desc[6],role.getName());}
        else if(remainBoold<10)
        {System.out.printf(injureds_desc[7],role.getName());}

        System.out.println();
    }
}

//二创建java文件2,命名为Gametest

复制代码
package test2;

public class GameTest {
    public static void main(String[] args) {


        //创建第一个角色
        playGame r1 = new playGame("乔峰", 100,'男');
        playGame r2 = new playGame("鸠磨章", 100,'男');
        r1.showRoleInfo();//展示人物1面板
        r2.showRoleInfo();//展示人物2面板
        //开始决斗,回合制
       while (true)
        {//r1开始攻击r2
            r1.attack(r2);
            //判断r2的剩余血量
            if (r2.getBlood() == 0) {
                System.out.println(r1.getName() + "K.O了" + r2.getName());
                break;
            }
            r2.attack(r1);
            if(r1.getBlood()==0)
            {
                System.out.println(r2.getName() + "K.O了" + r1.getName());
           break;
            }
        }
    }
}
相关推荐
飞30011 小时前
广州4399游戏25届春招游戏策划管培生内推
游戏·业界资讯·游戏策划
夏末秋也凉1 天前
力扣-贪心-55 跳跃游戏
算法·leetcode·游戏
火一线2 天前
【ASP .NET Core】ASP .NET Core介绍
服务器·游戏·.netcore
软件黑马王子2 天前
Unity游戏制作中的C#基础(6)方法和类的知识点深度剖析
开发语言·游戏·unity·c#
007_rbq3 天前
XUnity.AutoTranslator-Gemini——调用Google的Gemini API, 实现Unity游戏中日文文本的自动翻译
人工智能·python·游戏·机器学习·unity·github·机器翻译
Sui_Network3 天前
Sui 如何支持各种类型的 Web3 游戏
大数据·数据库·人工智能·游戏·web3·区块链
晴空了无痕3 天前
游戏客户端架构设计与实战:从模块化到性能优化
游戏·性能优化
软件黑马王子3 天前
Unity游戏制作中的C#基础(5)条件语句和循环语句知识点全解析
游戏·unity·c#
韩仔搭建4 天前
七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)
游戏·开源