我已经写了一个类创建和战斗口袋妖怪,但我不知道如何调用测试类中的战斗方法,以测试我写的类。简单的Java口袋妖怪扑灭模拟器

我的任务是编写和测试模拟两个口袋妖怪之间的战斗模拟。每个口袋妖怪都有一个健康值,一个强度值和一个速度值。健康值,强度值和速度值作为参数传递给构造函数。这些值最初必须介于1和300之间,最初应该为非零值。完成游戏的总体思路是,两个口袋妖怪将在模拟中与另一个“战斗”,口袋妖怪轮流攻击。 (具有最高速度值的那一个每轮首先进行)攻击口袋妖怪的力量将从“攻击者”身体中减去。

public class Pokemon{

private int health;

private int strength;

private int speed;

/**

* Constructs the pokemon

* @Require:

* health is an integer greater than or equal to 1 but less than or equal to 300

* strength is and integer greater than or equal to 1 but less than or equal to 300

* speed is an integer greater than or equal to 1 but less than or equal to 300

*/

public Pokemon(int health, int strength, int speed){

assert health >= 1;

assert health <= 300;

assert strength >= 1;

assert strength <= 300;

assert speed >= 1;

assert speed <= 300;

this.health = health;

this.strength = strength;

this.speed = speed;

}

public void battle(Pokemon pokemon1, Pokemon pokemon2){

do{

System.out.println(pokemon1+" begins the fight against "+pokemon2);

pokemon2.health = pokemon2.health - pokemon1.strength;

System.out.println(pokemon1 +" does "+ pokemon1.strength +" damage to "+

pokemon2 +" and "+ pokemon2 +" has "+ pokemon2.health +" left.");

pokemon1.health = pokemon1.health - pokemon2.strength;

System.out.println(pokemon2 +" does "+ pokemon2.strength +" damage to "+

pokemon1 +" and "+ pokemon1 +" has "+ pokemon1.health +" left.");

}while(pokemon1.health >= 1 || pokemon2.health >= 1);

if(pokemon1.health < 1)

System.out.println(pokemon1 +" has lost the fight");

else

System.out.println(pokemon2 +" has lost the fight");

}

}

口袋妖怪仪

public class PokemonTester{

private Pokemon charizard;

private Pokemon blastoise;

private Pokemon venusaur;

public PokemonTester(){

charizard = new Pokemon(100,50,50);

blastoise = new Pokemon(150,25,150);

venusaur = new Pokemon(300,10,100);

}

public static void main(String[] args){

Pokemon.battle(charizard, blastoise); //will not compile

}

}

我意识到我还没有实现在服用速度方面还转,因为我想只是使它工作。

2011-10-29

Brian

+1

请注意,你的while可能不是你想要的:只要一个口袋妖怪的健康<= 0,while循环应该停止。因此,你需要一个'while pok1.health> = 1 && pok2.health> = 1'注意'&&'而不是'||' –

+2

从现在开始,我将使用口袋妖怪名称作为变元变量。 –

+0

@Inerdia我同意这比真正的动物编程101锻炼更有趣 - 嘿,谁想看到狗与猫战斗? ;) –

口袋妖怪 java_简单的Java口袋妖怪扑灭模拟器相关推荐

  1. java宠物小精灵,简单的Java口袋妖怪扑灭模拟器

    我写了一个类来创建和战斗口袋妖怪,但我无法弄清楚如何在测试器类中调用battle方法来测试我写的类. 我的任务是编写和测试模拟两个神奇宝贝之间的战斗的模拟.每个神奇宝贝都有一个健康值,一个力量值和一个 ...

  2. 逗号运算符java_简单的java计算器 实现了重复标点及运算符连点限制

    今天练习了一个简约的java计算器的实现,特此阿萌分享代码给大家,本计算器代码也许有冗余,但是达到的限制效果还是比较完好的. 程序的实现还是比较简单的,而且代码也比较乱,想到那写到哪,但是对于作为练习 ...

  3. java宠物小精灵_简单的Java宠物小精灵战斗模拟器

    我已经写了一个类来创建和战斗口袋妖怪,但我无法弄清楚如何在测试者类中调用战斗方法来测试我写的类. 我的任务是编写和测试模拟两个口袋妖怪之间的战斗模拟.每个口袋妖怪都有一个健康值,一个强度值和一个速度值 ...

  4. surfacecontrol.java_简单说说JAVA层中Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系...

    1.Surface Surface extends Object implements Parcelable java.lang.Object android.view.Surface Class O ...

  5. 线程池简单实现java_简单实现java线程池

    package com.ty.thread; importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.Blocki ...

  6. 字符串 压缩 java_简单的java字符串压缩(原创)

    复制内容到剪贴板 代码:package org.test;/** * 面试题目:现有一个字符串,其内容仅仅包含a---z,现在要进行网络传输,故需要减少网络传输的 * 大小,如何将字符串空间缩小.以下 ...

  7. gradle插件 java_简单的Gradle Java插件自定义

    gradle插件 java 正如我在" 用Gradle构建Java的初步了解"一文中所展示的那样,当Gradle使用Java插件并将文件和目录放置在该插件期望的位置时, Gradl ...

  8. kafka zookeeper java_简单搭建kafka + zookeeper,附简单Java生产和消费客户端

    首先说明一下这是一篇入门实战操作文章,本人亦是刚刚开始接触kafka,看了网上很多很多的文章,觉得自己也应当在搭建平台的过程中留下一些痕迹,总结一下遇到的问题和解决方法. 这篇文章主要是讲从零开始把服 ...

  9. java手机游戏模拟器下载_Java手机游戏模拟器

    Java手机游戏模拟器主要针对诺基亚S60系列(屏幕176*220)手机以及其他大屏手机(小屏游戏也可运行,但不能全屏显示),是一款非常简单而且实用的JAVA游戏模拟器,可以正常运行绝大部分JAVA手 ...

最新文章

  1. selenium自动化之鼠标操作
  2. ARM汇编Hello,World
  3. 当使用easyui时,jquery的设置disabled属性方法失效
  4. 取ifrme里的div的代码
  5. ObjectMapper忽略未知字段
  6. 网页上无缝滚动的实现
  7. 11月3日云栖精选夜读:《maven实战》读书笔记2——maven安装(windows和eclipse插件)...
  8. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(三)密码修改以及密码重置...
  9. 兜兜转转,回到原点,Hello Mr.my yesterday
  10. Objective-c nil, Nil, NULL和NSNull的区别
  11. iGoogle自定义
  12. hbuilderx为什么打不开_windows系统,HBuilderX无法启动、点击无反应、或启动报错的解决方案...
  13. clip_gradient_norms()
  14. conda关于频道和存储包pkgs的详解(副pytorch环境安装)
  15. 东北大学计算机学院领导,计算机学院召开新一届全体干部大会
  16. 农村产权交易服务平台二次开发html源码
  17. 旁流综合水处理器的安装与连接技巧
  18. el-table的自定义行高设置
  19. errorMessage‘: ‘很遗憾没有抢到,再接再厉哦。‘, ‘orderId‘: 0, ‘resultCode‘:
  20. C语言结构体复习(一)

热门文章

  1. 只有300万预算,能在深圳买到什么样的二手房?分析20778套二手房
  2. se(3)-TrackNet: Data-driven 6D Pose Tracking by Calibrating Image Residuals in Synthetic Domains
  3. docker(5):容器
  4. [分享]老歌150首
  5. 远程搜索多选组件实现
  6. 回溯法求最佳工作分配方案
  7. Leetcode 577
  8. CEF3 91.0.4472的源代码编译以及支持MP3MP4的播放
  9. Real-Time Rendering Fourth Edition 学习笔记之 -- 第一章:介绍
  10. vertical-align 各个属性值的含义