也可以把这四个类直接复制下去放在一个包下面

父类

  1. package Cs1_6;
  2. public abstract class Persion {
  3. public abstract void Attack(Persion p);
  4. public abstract boolean Shan();
  5. public abstract boolean Baoji();
  6. public Persion() {
  7. }
  8. public Persion(int hp, int atk) {
  9. this.hp = hp;
  10. this.atk = atk;
  11. }
  12. private int hp;
  13. public int getHp() {
  14. return hp;
  15. }
  16. public void setHp(int hp) {
  17. this.hp = hp;
  18. }
  19. public int getAtk() {
  20. return atk;
  21. }
  22. public void setAtk(int atk) {
  23. this.atk = atk;
  24. }
  25. private int atk;
  26. }

匪徒类继承人类

  1. package Cs1_6;
  2. public class Fei extends Persion {
  3. public static int shantemp=0;
  4. public Fei() {
  5. }
  6. public Fei(int hp, int atk) {
  7. super(hp, atk);
  8. }
  9. @Override
  10. public String toString() {
  11. return String.format("匪徒的生命为%d,攻击为%d",this.getHp(),this.getAtk());
  12. }
  13. @Override
  14. public void Attack(Persion p) {
  15. if (p instanceof Police){
  16. Police pp = (Police)p;
  17. if (Baoji()){
  18. System.out.println("匪徒达成暴击");
  19. pp.setHp(0);
  20. return;
  21. }
  22. if(Shan()){
  23. if(++shantemp==3){
  24. System.out.println("获得闪避之神称号");
  25. System.out.println("每次收到伤害可抵挡5点");
  26. }
  27. System.out.println("警察已闪避");
  28. System.out.println("闪避成功获得10点回复效果");
  29. pp.setHp(pp.getHp()+5);
  30. return;
  31. }
  32. if(shantemp>=3){
  33. pp.setHp(pp.getHp()-pp.getAtk()+5);
  34. System.out.println("闪避之神抵挡5点伤害");
  35. return;
  36. }
  37. pp.setHp(pp.getHp()-pp.getAtk());
  38. }
  39. }
  40. @Override
  41. public boolean Shan() {
  42. if (Math.random()>0.7) return true;
  43. return false;
  44. }
  45. @Override
  46. public boolean Baoji() {
  47. if (Math.random()>=0.9) return true;
  48. return false;
  49. }
  50. }

警察类继承人类

  1. package Cs1_6;
  2. public class Police extends Persion {
  3. public static int shantemp=0;
  4. public Police() {
  5. }
  6. public Police(int hp, int atk) {
  7. super(hp, atk);
  8. }
  9. public String toString() {
  10. return String.format("警察的生命为%d,攻击为%d",this.getHp(),this.getAtk());
  11. }
  12. @Override
  13. public void Attack(Persion p) {
  14. if (p instanceof Fei){
  15. Fei ff = (Fei)p;
  16. if (Baoji()){
  17. System.out.println("警察达成暴击");
  18. ff.setHp(0);
  19. return;
  20. }
  21. if(Shan()) {
  22. if(++shantemp==3){
  23. System.out.println("获得闪避之神称号");
  24. System.out.println("每次收到伤害可抵挡5点");
  25. }
  26. System.out.println("匪徒已闪避");
  27. System.out.println("闪避成功获得10点回复效果");
  28. ff.setHp(ff.getHp()+10);
  29. return;
  30. }
  31. if(shantemp>=3){
  32. ff.setHp(ff.getHp()-ff.getAtk()+5);
  33. System.out.println("闪避之神抵挡5点伤害");
  34. return;
  35. }
  36. ff.setHp(ff.getHp()-ff.getAtk());
  37. }
  38. }
  39. public boolean Shan() {
  40. if (Math.random()>0.7) return true;
  41. return false;
  42. }
  43. public boolean Baoji() {
  44. if (Math.random()>=0.9) return true;
  45. return false;
  46. }
  47. }

开始游戏的类

  1. package Cs1_6;
  2. public class Game {
  3. public static void Da(Persion p1,Persion f1){
  4. Police p;
  5. Fei f;
  6. if (p1 instanceof Police){
  7. p=(Police) p1;
  8. f=(Fei) f1;
  9. }
  10. else{
  11. p=(Police) f1;
  12. f=(Fei) p1;
  13. }
  14. System.out.println("警察开了枪");
  15. p.Attack(f);
  16. System.out.println(f.toString());
  17. while (p.getHp()>0 && f.getHp()>0){
  18. System.out.println("匪徒开了枪");
  19. f.Attack(p);
  20. System.out.println(p.toString());
  21. System.out.println();
  22. if(p.getHp()<=0){
  23. break;
  24. }
  25. System.out.println("警察开了枪");
  26. p.Attack(f);
  27. System.out.println(f.toString());
  28. }}
  29. public static void IsLive(Persion p1,Persion f1){
  30. Police p;
  31. Fei f;
  32. if (p1 instanceof Police){
  33. p=(Police) p1;
  34. f=(Fei) f1;
  35. }
  36. else{
  37. p=(Police) f1;
  38. f=(Fei) p1;
  39. }
  40. if (p.getHp()<=0){
  41. System.out.println("警察阵亡");
  42. }
  43. else if(f.getHp()<=0){
  44. System.out.println("匪徒阵亡");
  45. }
  46. }
  47. public static void main(String[] args) {
  48. //创建
  49. Police p = new Police(100,(int)(Math.random()*20+1));
  50. Fei f = new Fei(100,(int)(Math.random()*20+1));
  51. //谁先打
  52. // boolean b = Math.random()>=0.5;
  53. //警察先打
  54. if(Math.random()>=0.5){
  55. Da(p,f);
  56. // System.out.println("警察开了枪");
  57. // p.Attack(f);
  58. // System.out.println(f.toString());
  59. // while (p.getHp()>0 && f.getHp()>0){
  60. //
  61. //
  62. //
  63. // System.out.println("匪徒开了枪");
  64. // f.Attack(p);
  65. // System.out.println(p.toString());
  66. // System.out.println();
  67. // if(p.getHp()<=0){
  68. // break;
  69. // }
  70. // System.out.println("警察开了枪");
  71. // p.Attack(f);
  72. // System.out.println(f.toString());
  73. // }
  74. }
  75. //匪徒先打
  76. else{
  77. Da(f,p);
  78. // System.out.println("匪徒开了枪");
  79. // f.Attack(p);
  80. // System.out.println(p.toString());
  81. // while (p.getHp()>0 && f.getHp()>0){
  82. //
  83. // System.out.println("警察开了枪");
  84. // p.Attack(f);
  85. // System.out.println(f.toString());
  86. // System.out.println();
  87. // if(f.getHp()<=0){
  88. // break;
  89. // }
  90. // System.out.println("匪徒开了枪");
  91. // f.Attack(p);
  92. // System.out.println(p.toString());
  93. // }
  94. }
  95. // while (p.getHp()>0 && f.getHp()>0){
  96. //
  97. // System.out.println("警察开了枪");
  98. // p.Attack(f);
  99. // System.out.println(f.toString());
  100. // if(f.getHp()<=0){
  101. // break;
  102. // }
  103. // System.out.println("匪徒开了枪");
  104. // f.Attack(p);
  105. // System.out.println(p.toString());
  106. // }
  107. //是否活着
  108. IsLive(p,f);
  109. // if (p.getHp()<=0){
  110. // System.out.println("警察阵亡");
  111. // }
  112. // else if(f.getHp()<=0){
  113. // System.out.println("匪徒阵亡");
  114. // }
  115. }
  116. }

Java实现控制台版CS的更多相关文章

  1. 基于TCP协议的聊天室控制台版

    我之前写过一篇博客,主要是基于TCP协议实现的聊天室swing版,在此再写一个基于TCP协议实现的聊天室控制台版,便于学习和比较. package 聊天室console版.utils; import ...

  2. c++实现通讯录管理系统(控制台版)

    c++实现通讯录管理系统(控制台版) 此项目适合c++初学者,针对c++基础知识,涉及到变量.结构体定义使用.数组定义使用.指针定义使用等. 运行之后的结果如下: 代码: #include <i ...

  3. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  4. 《Thinking In Java第四版》拾遗

    <Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC ...

  5. Java实现简单版SVM

    Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的.         之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...

  6. 工厂方法模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...

  7. 抽象工厂模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操 ...

  8. 建造者模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...

  9. 《Effective Java(中文第二版)》【PDF】下载

    <Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...

随机推荐

  1. js console一些常用的功能

    前言 很多时候我们在调试的时候经常用console.log,我感觉其实一个就够了,但是有时候你不可能写一步就去调试下,所以呢,经常用几个console.log,有时候挺难找的,后面翻了翻console ...

  2. Spring源码解析02:Spring IOC容器之XmlBeanFactory启动流程分析和源码解析

    一. 前言 Spring容器主要分为两类BeanFactory和ApplicationContext,后者是基于前者的功能扩展,也就是一个基础容器和一个高级容器的区别.本篇就以BeanFactory基 ...

  3. GitHub 热点速览 Vol.20:VSCode 插件全家桶新增画图小能手

    作者:HelloGitHub-小鱼干 摘要:后浪,这个五月热词用来概括 GitHub 本周热点无疑是最佳词汇.Deno 这个 Node.js 作者制造出来的后浪,掀起了 GitHub Trending ...

  4. Azure AD B2C(一)初识

    一,引言(上节回顾) 上一节讲到Azure AD的一些基础概念,以及如何运用 Azure AD 包含API资源,Azure AD 是微软提供的云端的身份标识和资源访问服务,帮助员工/用户/管理员访问一 ...

  5. linux常用命令---打包压缩解压

    打包压缩解压

  6. Spring 基于设值函数(setter方法)的依赖注入

    当容器调用一个无参的构造函数或一个无参的静态 factory 方法来初始化你的 bean 后,通过容器在你的 bean 上调用设值函数,基于设值函数的 DI 就完成了. 下述例子显示了一个类 Text ...

  7. BZOJ1021

    转载:http://www.cnblogs.com/Asm-Definer/p/4372749.html 1021: [SHOI2008]Debt 循环的债务 Time Limit: 1 Sec  M ...

  8. SSH启动Tomcat:The requested resource is not available

    原因:请求的资源不可用. 解决方法: (1)单词拼写错误,可能出现在 ——路径名称 ——配置文件名称 ——包名 ——类名 ——文件内的单词 (2)项目里文件的位置错误 (3)SSH相关的类文件里,定义 ...

  9. Java入门以及使用IDEA安装和使用

    目录 JAVA第一个程序 HelloWorld 可能会遇到的情况 JAVA程序运行机制 IDEA安装 什么是IDE IDEA介绍 IDEA下载 IDEA基本使用 关于一些创建项目的小tips JAVA ...

  10. MyBatis—— org.apache.ibatis.binding.BindingException: Type interface com.web.mybatis.i.PersonMapper is not known to the MapperRegistry.

    报错信息: Exception in thread "main" org.apache.ibatis.binding.BindingException: Type interfac ...