面向对象练习坦克大兵游戏

游戏玩家(名称,生命值,等级),坦克,大兵类,玩家之间可以相互攻击,大兵拥有武器,用枪弹和反坦克炮弹,造成攻击不同,坦克攻击值固定,请设计玩家互相攻击的过程,实现坦克A大兵,大兵打坦克,大兵用枪打坦克,大兵用反坦克导弹打坦克。

大兵被坦克攻击了,从200到0
坦克被反坦克炮弹攻击了,从1000到500
坦克被手枪攻击了,从500到400

在这里插入图片描述

package com;public class Tank extends Player{public Tank() {this.setName("坦克");this.setBlood(1000);this.setAtackvalue(200);}}
package com;public class Soldier extends Player {private Weapon wp;public Soldier() {this.setName("大兵");this.setAtackvalue(20);this.setBlood(200);}public void setWeapon(Weapon wp ) {this.wp=wp;}public void fire(Player target) {if(wp==null) {int blood0,blood;blood0=target.getBlood();blood=blood0-this.getAtackvalue();target.setBlood(blood);System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());}else {			wp.fire(target);}}}
package com;public class Player {private String name; // 名称private int blood ; // 生命值private int level; // 等级默认为1,所有输出值为等级x数值private int atackvalue;  //攻击值public int getAtackvalue() {return atackvalue;}public void setAtackvalue(int atackvalue) {this.atackvalue = atackvalue;}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 int getLevel() {return level;}public void setLevel(int level) {this.level = level;}public void fire(Player target) {int blood,blood0;blood0=target.getBlood();blood =blood0 - this.getAtackvalue();target.setBlood(blood);System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());}}
package com;public  class Weapon {private String name ; //武器名称private  int atackvalue;  //攻击值public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAtackvalue() {return atackvalue;}public void setAtackvalue(int atackvalue) {this.atackvalue = atackvalue;}public void fire(Player target) {int blood0,blood;blood0=target.getBlood();blood =blood0  - this.getAtackvalue();target.setBlood(blood);System.out.println(target.getName()+"被"+this.getName()+"攻击了,从"+blood0+"到"+target.getBlood());}}
package com;public class Bullet extends Weapon {public Bullet() {this.setAtackvalue(100);this.setName("手枪");}}
package com;public class Shell extends Weapon {public Shell() {this.setAtackvalue(500);this.setName("反坦克炮弹");}}
package com;public class Test {public static void main(String[] args) {Tank tk=new Tank();Soldier s=new Soldier();tk.fire(s);Soldier s2=new Soldier();Shell shell=new Shell();s2.setWeapon(shell);s2.fire(tk);Bullet bl=new Bullet();s2.setWeapon(bl);s2.fire(tk);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/641887.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的数据抽取工具对比

1.什么是ETL? ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,是数据仓库的生命线。 …

用Python将原始边列表转换为邻接矩阵

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在图论和网络分析中,图是一种非常重要的数据结构,它由节点&#xff…

Pytorch:张量的梯度计算

目录 一、自动微分简单介绍1、基本原理2、梯度计算过程3、示例:基于 PyTorch 的自动微分a.示例详解b.梯度计算过程c.可视化计算图 4、总结 二、为什么要计算损失,为何权重更新是对的?1、梯度下降数学原理2、梯度上升 三、在模型中使用自动微分…

(C++) 树状数组

目录 一、介绍 二、一维树状数组 2.1 区间长度 2.2 前驱和后继 2.3 查询前缀和 2.4 点更新 三、一维数组的实现 3.1 区间长度函数 3.2 前缀和 3.3 插入/更新 3.4 封装成类 一、介绍 树状数组(Binary Indexed Tree,BIT),又称为 …

YOLOv8-Pose推理详解及部署实现

文章转自:YOLOv8-Pose推理详解及部署实现 注意事项 一、2024/1/10更新 修改第 4 部分 YOLOv8-Pose 推理中后处理 iou 计算代码,原代码存在问题,原代码如下: def iou(box1, box2):def area_box(box):return (box[2] - box[0]) …

Midjourney-01 初试上手 注册使用并生成你的第一张AI图片 详细流程 提示词 过程截图 生成结果 付费文生图的天花板!

背景介绍 Midjourney是一款基于人工智能技术的绘画软件,利用深度学习算法来辅助用户进行绘画创作。这款软件能够通过用户输入的文本描述生成图像,支持多种生成方式,包括文字生成图片、图片生成图片和混合图片生成图片。 图像生成方式&#…

Spark Standalone模式部署

准备至少2台虚拟机,装好linux系统,我装的是Ubuntu20.04。 1.修改主机名(每台) 1)修改/etc/hostsname内容,主节点改为master,子节点改为slaver1 sudo vim /etc/hostname 2)在/etc/…

QT----MP3播放器搜索引擎

代码地址:GitHub 文档与提交记录章节相同,方便查看代码变动。视频教学里的酷狗api已经无法使用,自己摸索了一下,还学到了点爬虫知识。教学视频是我废了好大劲搞来的,三连关注点赞评论进入个人博客领取啦 1 新建项目 …

面试算法准备:动态规划

这里写自定义目录标题 1 理论2 例题2.1 斐波那契数列(什么是重叠子问题)2.1.1 带备忘录的递归解法 2.2 零钱兑换(讲解最优子结构)2.3 最长递增子序列(讲解如何求解状态转移方程)2.4 俄罗斯套娃信封问题&…

刷课必备!用Python实现网上自动做题

前言 开学少不了老师会布置一些 软件上面的作业,今天教大家用python制作自动答题脚本,100%准确率哦喜欢的同学记得关注、收藏哦 环境使用 Python3.8Pycharm 模块使用 import requests —> 数据请求模块 pip install requestsimport parsel —>…

鸿蒙开发模拟器的坑, No Devices

问题 我已经安装了模拟器,并且模拟器已经运行了 在Device Manager页面开启模拟器 No Devices 但是这里没有模拟器的选项 解决 添加环境变量 下面步骤 1、清除用户数据 2、 关闭Device Manager 3、 关闭ide 重启ide、开启模拟器 看到有模拟器的选项了