Java 为了满足关于回合制游戏的详细要求,我必须在代码中添加什么?
游戏以初始化英雄开始。英雄有4种属性:力量、敏捷、耐力和健康。默认情况下,生命值设置为50,耐力设置为25,但力量和敏捷必须通过滚动一个12面骰子、一个10面骰子和一个8面骰子来初始化。我很难将最高值指定给力量,将敏捷性设置为其他两个值的总和 一轮应该由每个玩家选择一个动作并计算造成的伤害组成。每个玩家必须为他们的英雄选择一个移动(攻击或防御)。每一步都需要耐力,所以如果英雄负担不起耐力消耗,他必须休息 移动详细信息: 攻击和休息不提供防御,所以如果你在这些状态下受到攻击,你将受到全部伤害。 休息可以增加生命值,从而减轻伤害,但它与阻塞不同 阻挡提供防御,所以如果英雄在阻挡时受到攻击,伤害可以避免。 如果阻塞值大于或等于攻击值,则攻击被闪避。 否则,攻击和阻挡之间的区别就是伤害 攻击-掷20面骰子。攻击值是力量加上掷骰。如果英雄不能达到耐力消耗(6),他必须休息,攻击值为零。 防御-掷一个20面骰子。防御价值是敏捷加上掷骰。如果英雄不能达到耐力消耗(4),他必须休息,攻击值为零 休息-当一名球员试图进攻/防守但体力不足时,掷6面骰、8面骰和10面骰。为健康添加最高值。把另外两个加起来就是耐力。这里没有体力消耗 最终目标是编写一个类来测试所有内容: 创建一个新的战地管理器,使用战地管理器设置2个新英雄。打印每个英雄的统计信息。使用英雄作为输入参数调用round方法。打印每个英雄的统计信息,使用英雄作为输入参数调用round方法。打印每个英雄的统计信息。比较两位英雄的健康状况。打印最健康的英雄的名字,并宣布他们为获胜者Java 为了满足关于回合制游戏的详细要求,我必须在代码中添加什么?,java,java.util.scanner,Java,Java.util.scanner,游戏以初始化英雄开始。英雄有4种属性:力量、敏捷、耐力和健康。默认情况下,生命值设置为50,耐力设置为25,但力量和敏捷必须通过滚动一个12面骰子、一个10面骰子和一个8面骰子来初始化。我很难将最高值指定给力量,将敏捷性设置为其他两个值的总和 一轮应该由每个玩家选择一个动作并计算造成的伤害组成。每个玩家必须为他们的英雄选择一个移动(攻击或防御)。每一步都需要耐力,所以如果英雄负担不起耐力消耗,他必须休息 移动详细信息: 攻击和休息不提供防御,所以如果你在这些状态下受到攻击,你将受到全部伤害。 休
public class Hero
{
private String name;
private int health;
private int strength;
private int agility;
private int stamina;
Die die1;
Die die2;
Die die3;
public Hero(String name)
{
this.name = name;
this.health = 50;
this.stamina = 25;
this.strength = 5;
this.agility = 5;
}
public void setName(String Name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setHealth(int health)
{
this.health = health;
}
public int getHealth()
{
return health;
}
public void setStrength(int strength)
{
this.strength = strength;
}
public int getStrength()
{
return strength;
}
public void setAgility(int agility)
{
this.agility = agility;
}
public int getAgility()
{
return agility;
}
public void setStamina(int stamina)
{
this.stamina = stamina;
}
public int getStamina()
{
return stamina;
}
public int addHealth()
{
if(health < 45 || health >= 0)
{
health = health + 5;
}
return health;
}
public int removeHealth()
{
if(health <= 50 || health >= 5)
{
health = health - 5;
}
return health;
}
public int addStamina()
{
if(stamina <= 20 || stamina >= 0)
{
stamina = stamina + 5;
}
return stamina;
}
public int removeStamina()
{
if(stamina <= 25 || stamina >= 5)
{
stamina = stamina - 5;
}
return stamina;
}
private void rest()
{
health = health + addHealth();
stamina = stamina + addStamina();
}
public int attack(int damage)
{
die1 = new Die(20);
die1.roll();
if(stamina <= 5)
{
rest();
}
else
{
damage = strength + die1.getValue();
stamina = stamina - 6;
}
return damage;
}
public int defend(int block)
{
die1 = new Die(20);
die1.roll();
if(stamina <= 3)
{
rest();
}
if(die1.getValue() <= 6)
{
block = getAgility() + (die1.getValue() * 2);
}
else
{
block = getAgility() + (die1.getValue());
}
stamina = stamina - 4;
return block;
}
public void printStats()
{
System.out.println("Thy hero's name is: " + getName());
System.out.println("Thy strengh is: " + getStrength());
System.out.println("Thy agility is: " + getAgility());
System.out.println("Thy stamina is: " + getStamina());
System.out.println("Thy health is: " + getHealth());
}
}
最后一节课
import java.util.Random;
public class Die
{
private int sides;
private int dieValue;
public void roll()
{
Random r = new Random();
dieValue = (r.nextInt(sides) + 1);
}
public int getSides()
{
return sides;
}
public void setSides(int sides)
{
this.sides = sides;
}
public Die()
{
sides = 1;
dieValue = 1;
}
public Die (int sides)
{
sides = 1;
dieValue = 1;
if(sides >= 0)
{
this.sides = sides;
}
}
public int getValue()
{
int value = dieValue;
return value;
}
}
我知道我的代码需要一个扫描器,可能还需要一个循环,以应对宣布获胜者所需的多轮挑战。我将如何着手实现代码的所有这些规则?我已经做了非常基本的工作,但是提示用户输入对我来说很困难。任何帮助都会很好,但越详细越好。“提示用户输入对我来说很困难。”但是想象一下,当你完成它时,通过自己的研究,你会感到多么满意!我知道这是最佳路线,但我时间紧迫。我看到大多数人都在看这堵文字墙,并假设我要求他们做一个完整的项目,但我认为我已经接近完成我已经拥有的。除了研究用户提示之外,关于这个代码我还应该查什么?我建议你只读一点关于游戏设计的知识,也看看这个问题的答案,把问题分解成可管理的部分。如果感到不知所措,这总是一个开始。编写一个大约15行的测试程序来处理输入——只需提示输入,将其解析为片段,然后打印出片段。工作到满意为止。你需要10到15分钟。然后把你学到的东西融入到你的大计划中。在你的其他问题上做到这一点。真正的编程是一个非常迭代的过程,有时你会编写一些小的辅助程序来找出如何使某些东西工作。即使40年过去了,我仍然这样做是为了解决一些问题。
import java.util.Random;
public class Die
{
private int sides;
private int dieValue;
public void roll()
{
Random r = new Random();
dieValue = (r.nextInt(sides) + 1);
}
public int getSides()
{
return sides;
}
public void setSides(int sides)
{
this.sides = sides;
}
public Die()
{
sides = 1;
dieValue = 1;
}
public Die (int sides)
{
sides = 1;
dieValue = 1;
if(sides >= 0)
{
this.sides = sides;
}
}
public int getValue()
{
int value = dieValue;
return value;
}
}