Java实现控制台版CS
也可以把这四个类直接复制下去放在一个包下面
父类
package Cs1_6;
public abstract class Persion {
public abstract void Attack(Persion p);
public abstract boolean Shan();
public abstract boolean Baoji();
public Persion() {
}
public Persion(int hp, int atk) {
this.hp = hp;
this.atk = atk;
}
private int hp;
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getAtk() {
return atk;
}
public void setAtk(int atk) {
this.atk = atk;
}
private int atk;
}
匪徒类继承人类
package Cs1_6;
public class Fei extends Persion {
public static int shantemp=0;
public Fei() {
}
public Fei(int hp, int atk) {
super(hp, atk);
}
@Override
public String toString() {
return String.format("匪徒的生命为%d,攻击为%d",this.getHp(),this.getAtk());
}
@Override
public void Attack(Persion p) {
if (p instanceof Police){
Police pp = (Police)p;
if (Baoji()){
System.out.println("匪徒达成暴击");
pp.setHp(0);
return;
}
if(Shan()){
if(++shantemp==3){
System.out.println("获得闪避之神称号");
System.out.println("每次收到伤害可抵挡5点");
}
System.out.println("警察已闪避");
System.out.println("闪避成功获得10点回复效果");
pp.setHp(pp.getHp()+5);
return;
}
if(shantemp>=3){
pp.setHp(pp.getHp()-pp.getAtk()+5);
System.out.println("闪避之神抵挡5点伤害");
return;
}
pp.setHp(pp.getHp()-pp.getAtk());
}
}
@Override
public boolean Shan() {
if (Math.random()>0.7) return true;
return false;
}
@Override
public boolean Baoji() {
if (Math.random()>=0.9) return true;
return false;
}
}
警察类继承人类
package Cs1_6;
public class Police extends Persion {
public static int shantemp=0;
public Police() {
}
public Police(int hp, int atk) {
super(hp, atk);
}
public String toString() {
return String.format("警察的生命为%d,攻击为%d",this.getHp(),this.getAtk());
}
@Override
public void Attack(Persion p) {
if (p instanceof Fei){
Fei ff = (Fei)p;
if (Baoji()){
System.out.println("警察达成暴击");
ff.setHp(0);
return;
}
if(Shan()) {
if(++shantemp==3){
System.out.println("获得闪避之神称号");
System.out.println("每次收到伤害可抵挡5点");
}
System.out.println("匪徒已闪避");
System.out.println("闪避成功获得10点回复效果");
ff.setHp(ff.getHp()+10);
return;
}
if(shantemp>=3){
ff.setHp(ff.getHp()-ff.getAtk()+5);
System.out.println("闪避之神抵挡5点伤害");
return;
}
ff.setHp(ff.getHp()-ff.getAtk());
}
}
public boolean Shan() {
if (Math.random()>0.7) return true;
return false;
}
public boolean Baoji() {
if (Math.random()>=0.9) return true;
return false;
}
}
开始游戏的类
package Cs1_6;
public class Game {
public static void Da(Persion p1,Persion f1){
Police p;
Fei f;
if (p1 instanceof Police){
p=(Police) p1;
f=(Fei) f1;
}
else{
p=(Police) f1;
f=(Fei) p1;
}
System.out.println("警察开了枪");
p.Attack(f);
System.out.println(f.toString());
while (p.getHp()>0 && f.getHp()>0){
System.out.println("匪徒开了枪");
f.Attack(p);
System.out.println(p.toString());
System.out.println();
if(p.getHp()<=0){
break;
}
System.out.println("警察开了枪");
p.Attack(f);
System.out.println(f.toString());
}}
public static void IsLive(Persion p1,Persion f1){
Police p;
Fei f;
if (p1 instanceof Police){
p=(Police) p1;
f=(Fei) f1;
}
else{
p=(Police) f1;
f=(Fei) p1;
}
if (p.getHp()<=0){
System.out.println("警察阵亡");
}
else if(f.getHp()<=0){
System.out.println("匪徒阵亡");
}
}
public static void main(String[] args) {
//创建
Police p = new Police(100,(int)(Math.random()*20+1));
Fei f = new Fei(100,(int)(Math.random()*20+1));
//谁先打
// boolean b = Math.random()>=0.5;
//警察先打
if(Math.random()>=0.5){
Da(p,f);
// System.out.println("警察开了枪");
// p.Attack(f);
// System.out.println(f.toString());
// while (p.getHp()>0 && f.getHp()>0){
//
//
//
// System.out.println("匪徒开了枪");
// f.Attack(p);
// System.out.println(p.toString());
// System.out.println();
// if(p.getHp()<=0){
// break;
// }
// System.out.println("警察开了枪");
// p.Attack(f);
// System.out.println(f.toString());
// }
}
//匪徒先打
else{
Da(f,p);
// System.out.println("匪徒开了枪");
// f.Attack(p);
// System.out.println(p.toString());
// while (p.getHp()>0 && f.getHp()>0){
//
// System.out.println("警察开了枪");
// p.Attack(f);
// System.out.println(f.toString());
// System.out.println();
// if(f.getHp()<=0){
// break;
// }
// System.out.println("匪徒开了枪");
// f.Attack(p);
// System.out.println(p.toString());
// }
}
// while (p.getHp()>0 && f.getHp()>0){
//
// System.out.println("警察开了枪");
// p.Attack(f);
// System.out.println(f.toString());
// if(f.getHp()<=0){
// break;
// }
// System.out.println("匪徒开了枪");
// f.Attack(p);
// System.out.println(p.toString());
// }
//是否活着
IsLive(p,f);
// if (p.getHp()<=0){
// System.out.println("警察阵亡");
// }
// else if(f.getHp()<=0){
// System.out.println("匪徒阵亡");
// }
}
}
Java实现控制台版CS的更多相关文章
- 基于TCP协议的聊天室控制台版
我之前写过一篇博客,主要是基于TCP协议实现的聊天室swing版,在此再写一个基于TCP协议实现的聊天室控制台版,便于学习和比较. package 聊天室console版.utils; import ...
- c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...
- 《Thinking In Java第四版》拾遗
<Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC ...
- Java实现简单版SVM
Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...
- 工厂方法模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...
- 抽象工厂模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...
- 建造者模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...
- 《Effective Java(中文第二版)》【PDF】下载
<Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...
随机推荐
- spring mvc json返回防止乱码
乱码问题 乱码一直是编程的常见问题,spring mvc 返回json数据时可能导致乱码,需要在controller中添加如下代码: @RequestMapping("/test" ...
- CentOS6.5x64采用静默模式安装64位oracle11g
1.下载oracle11g64位版本的源文件,并上传到Linux服务器,下载地址自行百度,若实在找不到请留言. 2.Package安装检查安装: 通过yum工具直接安装: yum -y install ...
- Codeforces 909E(Coprocessor,双队列维护)
题意:给出n个待处理的事件(0 ~n-1),再给出了n个标(0表示只能在主处理器中处理这个事件,1表示只能在副处理器中处理这个事件),处理器每次能处理多个任务.每个事件有关联,如果一个任务要在副处理器 ...
- 学习ASP.NET Core(06)-Restful与WebAPI
上一篇我们使用Swagger添加了接口文档,使用Jwt完成了授权,本章我们简答介绍一下RESTful风格的WebAPI开发过程中涉及到的一些知识点,并完善一下尚未完成的功能 .NET下的WebAPI是 ...
- Nginx 、MySQL、Django 在 Docker-compose 中的部署
概述 本文主要记录了在 Linux 3.10.0-1062.el7.x86_64 下使用 docker-compose 搭建服务的过程,由于公司服务器在内网中,搭建镜像及下载依赖时需要外部代理,如果本 ...
- Codeforces1157B(B题)Long Number
B. Long Number You are given a long decimal number aa consisting of nn digits from 11 to 99. You als ...
- java web基础
WEB基础 C/S:即服务器-客服机(Client-Server)结构.C/S结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务.客户通过局域网与服务器相连,接受用户的请求,并 ...
- python3.x 基础八:socket网络编程
Socket socket就是一直以来说的“套接字”,用于描述:ip:端口,是通信链的句柄,客户端通过这个句柄进行请求和响应 普通文件的操作顺序:打开-读写-关闭,针对的是文件 socket是特殊的文 ...
- 机器学习决策树ID3算法,手把手教你用Python实现
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第21篇文章,我们一起来看一个新的模型--决策树. 决策树的定义 决策树是我本人非常喜欢的机器学习模型,非常直观容易理解 ...
- C:习题2
C 语言中的数据类型主要有哪些? C 语言为什么要规定对所有用到的变量“先定义后使用”?这样做有什么好处? 1. 编译系统会根据定义为变量分配内存空间,分配空间的大小与数据类型有关 2. 系统可以根据 ...