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

news/2025/2/25 23:32:46

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

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

//一创建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;
            }
        }
    }
}

http://www.niftyadmin.cn/n/5866964.html

相关文章

PHP入门基础学习四(PHP基本语法)

运算符 运算符&#xff0c;专门用于告诉程序执行特定运算或逻辑操作的符号。根据运算符的作用&#xff0c;可以将PHP语言中常见的运算符分为9类 算数运算符&#xff1a; 是用来处理加减乘除运算的符号 也是最简单和最常用的运算符号 赋值运算符 1. 是一个二元运算符&#x…

LabVIEW齿轮箱故障分析系统

在运维过程中&#xff0c;某大型风电场发现多台2.5MW风力发电机组在低速重载工况下频繁出现异常振动&#xff0c;导致齿轮箱温度升高和发电效率下降。传统的FFT频谱分析无法准确定位故障源&#xff0c;人工排查耗时且成本高昂。经初步检查&#xff0c;怀疑是行星齿轮箱内齿圈局…

常用的HTML meta标签有哪些

meta是 HTML 中的一个元数据标签&#xff0c;位于 <head> 标签内&#xff0c;不会在页面上直接显示&#xff0c;但能为浏览器和搜索引擎提供关于网页的重要信息。以下是一些常用的 <meta> 标签及其用途&#xff1a; 1. 字符编码声明 用于指定 HTML 文档的字符编码…

【1】VS Code 新建上位机项目---C#基础语法

VS Code 新建上位机项目---C#基础语法 1 基本概念1.1 准备工具1.2 新建项目2 C#编程基础2.1 命名空间和类2.2 数据类型2.3 控制台输入输出2.3.1 输入输出: write 与 read2.3.2 格式化 : string.Foramt() 与 $2.3.3 赋值与运算2.4 类型转换2.4.1 数值类型之间的转换:(int)2.4…

python中格式化输出知识点汇总

在Python中&#xff0c;格式化输出是一种常见的操作&#xff0c;用于将数据以特定的格式展示。以下是Python中格式化输出的主要方法&#xff1a; 1. 使用 % 操作符 这是Python早期版本中常用的格式化方法&#xff0c;类似于C语言中的 printf 。 基本语法 &#xff1a; "…

在PyCharm中集成AI编程助手并嵌入本地部署的DeepSeek-R1模型:打造智能开发新体验

打造智能开发新体验&#xff1a;DeepSeekPycharmollamaCodeGPT 目录 打造智能开发新体验&#xff1a;DeepSeekPycharmollamaCodeGPT前言一、什么是ollama&#xff1f;二、如何使用1.进入ollama官方网站:2.点击下载ollama安装包3.根据默认选项进行安装4.安装成功5.打开命令提示符…

lua-游戏红点提示系统抽象设计

文章目录 前言一、定义红点节点类型二、节点注册与管理三、状态更新与冒泡机制 四、示例配置与使用五、结构示意图六、关键机制说明总结 前言 在游戏开发中&#xff0c;红点提示系统可以通过树形结构和策略模式进行抽象&#xff0c;实现高扩展性。以下是基于Lua的实现方案&…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控&#xff0c;通过监控后端服务对外部请求的响应情况&#xff0c;判断服务器是否可用。 DPVS的被动监测&#xff0c;并不能获取后端服务器的详细情况&#xff0c;仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…