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

游戏玩家(名称,生命值,等级),坦克,大兵类,玩家之间可以相互攻击,大兵拥有武器,用枪弹和反坦克炮弹,造成攻击不同,坦克攻击值固定,请设计玩家互相攻击的过程,实现坦克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.mzph.cn/pingmian/3027.shtml

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

相关文章

设计模式-六大原则

设计模式的六大原则是软件工程中的基本概念,使得构建可维护、可扩展和可重用的代码。 1.单一职责原则(Single Responsibility Principle):一个类或方法应该只有一个引起变化的原因,确保类或模块的功能高度内聚。 案例&…

VMware-Linux切换桥接模式上网教程(超详细)

这里写目录标题 1. 虚拟机关机2. VMware 虚拟网络配置2.1 检查是否存在 VMnet02.2 修改桥接模式2.3 修改Linux虚拟机网络适配器 3. Linux 系统配置3.1 修改系统网卡配置3.1.1 配置项含义解释3.1.2 查看物理机网络信息3.3.3 修改配置 3.2 重启服务 4. 测试网络连接情况5. 注意事…

【SpringBoot整合系列】SpringBoot整合JPA

目录 前期回顾ORM解决方案 JPA简介JPA的组成技术ORM映射元数据Java持久化API查询语言(JPQL) JPA的优势JPA的缺点 Spring Data JPASpring Data JPA简介Spring Data 家族Spring Data JPA、JPA和其他框架之间的关系 SpringBoot整合JPAJPA的核心注解1.依赖2.…

element-ui upload 组件 手动多次出发 submit

element 上传组件 upload 上传成功以后,想重新 调用 submit()函数,发现是不可以进行多次触发的,。 直接上解决方法,在上传成功后的钩子函数里添加:fileList[0l.status ready fileList是文件列表,status是单文件的状态改成ready就…

【Fastadmin】表格导出excel,图片显示太大

目录 1.直接导出示例 2.解决办法 3. 再次导出效果 1.直接导出示例 图片过大,格式错乱 2.解决办法 在js页面加入代码 // 导出图片过大处理 exportOptions: {ignoreColumn: [0, operate],onBeforeSaveToFile: function (data, fileName, type, charset, encoding,…

《深入Linux设备驱动程序内核机制》学习笔记-第4章

前言 本文是《深入Linux设备驱动程序内核机制》的读书笔记,本文因为是读书笔记所以抄写引用了该书中的大量内容,写读书笔记的目的是在写作的过程中加深对书中内容的理解。 建议读者直接阅读《深入Linux设备驱动程序内核机制》,这本书是Linu…

mPEG-Dansyl,Methoxy PEG Dansyl由甲氧基-聚乙二醇(mPEG)和丹磺酰氯(Dansyl)两部分组成

【试剂详情】 英文名称 mPEG-Dansyl,Methoxy PEG Dansyl 中文名称 聚乙二醇单甲醚丹磺酸酯,甲氧基-聚乙二醇-丹磺酰胺 外观性状 由分子量决定,液体或者固体 分子量 0.4k,0.6k,1k,2k,3.4k…

前端发送请求,显示超时取消

前端发送请求,显示超时取消 问题说明:后台接口请求60s尚未完成,前端控制台显示取消(canceled) 原因 1、前端设置60s超时则取消 2、后台接口响应时间过长,过长的原因统计的数据量多(实际也才17…

LLM 安全 | 大语言模型应用安全入门

一、背景 2023年以来,LLM 变成了相当炙手可热的话题,以 ChatGPT 为代表的 LLM 的出现,让人们看到了无限的可能性。ChatGPT能写作,能翻译,能创作诗歌和故事,甚至能一定程度上做一些高度专业化的工作&#x…

BUUCTF-Misc20

[ACTF新生赛2020]NTFS数据流1 1.打开附件 是一堆文件,随便打开一个内容是flag不在这 2.pyton脚本 编写查找文件夹下一堆文件中那个文件藏有flag的Python脚本 import os def search_flag_files(folder_path, flag): flag_files [] for root, dirs, files …

HAL STM32 SSI/SPI方式读取MT6701磁编码器获取角度例程

HAL STM32 SSI/SPI方式读取MT6701磁编码器获取角度例程 📍相关篇《HAL STM32 I2C方式读取MT6701磁编码器获取角度例程》📌当前最新MT6701数据手册:https://www.magntek.com.cn/upload/MT6701_Rev.1.8.pdf📜SSI协议读角度&#xff…

【stomp实战】搭建一套websocket推送平台

前面几个小节我们已经学习了stomp协议,了解了stomp客户端的用法,并且搭建了一个小的后台demo,前端页面通过html页面与后端服务建立WebSocket连接。发送消息给后端服务。后端服务将消息内容原样送回。通过这个demo我们学习了前端stomp客户端的…

剑指 Offer 03.:数组中重复的数字

剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。…

DIN特征加权、POSO特征增强、SENET特征选择

本文转自:DIN、POSO、SENet 聊聊推荐模型中常用的Attention-腾讯云开发者社区-腾讯云 一、前言 聊起模型结构的时候,经常听做推荐的同学说: "这里加了个self-attention" "类似于一个SENet" "一个魔改的POSO"…

[Visual Studio 报错] error 找不到指定的 SDK“Microsoft

[Visual Studio 2022 报错] error : 找不到指定的 SDK“Microsoft.NET.Sdk.Web” 问题描述: 在新电脑上安装了VS2022,打开现有项目的解决方案后的时候报了这个错,所有projet文件都加载失败,如图所示: 报错分析及解决 打开项目配…

经验丰富也被裁了,失业快2年找不到工作?

前几天徐工说,他有个邻居,最近逮到他总是要跟他扯上几句。 原因是徐工一直是做嵌入式开发,而他一直做纯软件开发,具体不知道做后端还是前端。 他说,他至少有半年没上班了,之前在一家龙头物流公司上班。 碰上…

STM32 HAL库F103系列之DAC实验(二)

DAC输出正弦波实验 实验简要 1,功能描述 通过DAC1通道1(PA4)输出正弦波,然后通过DS100示波器查看波形 2,使用定时器7 TRGO事件触发转换 TEN1位置1、TSEL1[2:0]010 3,关闭输出缓冲 BOFF1位置1 4,使用DMA模式 DMAE…

SLMs之Phi-3:Phi-3的简介、安装和使用方法、案例应用之详细攻略

SLMs之Phi-3:Phi-3的简介、安装和使用方法、案例应用之详细攻略 导读:2024年4月23日,微软发布Phi-3,这是微软推出的一款新的开源AI模型家族Phi-3。背景痛点:小语言模型(SLM)尽管规模不大,但在语言理解、代码…

盲盒商城小程序(有米就出)

一款前端采用uniapp,后端采用Django框架开发的小程序,包含后台管理,如有人需要可联系演示功能(个人开发,可商用/学习)。 部分截图如下:

文件摆渡:安全、高效的摆渡系统助力提升效率

很多组织和企业都会通过网络隔离的方式来保护内部的数据,网络隔离可以是物理隔离,也可以是逻辑隔离,如使用防火墙、VPN、DMZ等技术手段来实现,隔离之后还会去寻找文件摆渡方式,来保障日常的业务和经营需求。 进行网络隔…