java实现角色+武器攻击小游戏
程序员文章站
2022-04-07 18:09:20
java实现小游戏1.游戏有2个角色可供选择:男玩家 攻击力 10女玩家 攻击力 82.游戏有3种武器剑 攻击力 10 40%几率造成双倍伤害斧 攻击力 15 20%几率一击杀死怪物弓 攻击力 25 35%几率被闪避(无法造成伤害)3.游戏有1种怪物怪物 生命值 250-300 (随机)4.玩家可以装备武器装备后 玩家实际攻击力=玩家本身攻击力+武器攻击力(武器特效触发时,攻击力计算使用玩家实际攻击力)特殊要求 男玩家不能装备弓、女玩家不能装备斧...
java实现小游戏
1.游戏有2个角色可供选择:
男玩家 攻击力 10
女玩家 攻击力 8
2.游戏有3种武器
剑 攻击力 10 40%几率造成双倍伤害
斧 攻击力 15 20%几率一击杀死怪物
弓 攻击力 25 35%几率被闪避(无法造成伤害)
3.游戏有1种怪物
怪物 生命值 250-300 (随机)
4.玩家可以装备武器
装备后 玩家实际攻击力=玩家本身攻击力+武器攻击力 (武器特效触发时,攻击力计算使用玩家实际攻击力)
特殊要求 男玩家不能装备弓、女玩家不能装备斧
实现代码
private static Random random = new Random();
public static void main(String args[]){
//随机生成一个新玩家(男/女)
GamePlayer player = null;
//补全新玩家生成代码
//随机生成一把武器,装备给玩家
Weapon weapon=null;
//补全武器生成代码、装备给玩家代码(要求必须装备成功才能继续向下进行)
int p = random.nextInt(2);
int w = random.nextInt(2);
if (p == 0){
player = new BoyPlayer();
System.out.println("生成玩家为男玩家");
if (w == 1){
weapon = new Axe();
System.out.println("玩家获得武器:斧头");
}
}else {
player = new GirlPlayer();
System.out.println("生成玩家为女玩家");
if (w == 1){
weapon = new Bow();
System.out.println("玩家获得武器:弓");
}
}
if (w == 0){
weapon = new Sword();
System.out.println("玩家获得武器:剑");
}
//随机生成一个怪物
Monster monster=null;
//补全怪物生成代码
monster = new Monster();
//玩家攻击怪物直到杀死怪物,记录攻击次数
int attackNumber=0; //定义攻击怪物的次数
int HealthPoint = monster.getHealthPoint();
int damage = 0;
while (HealthPoint != 0){
attackNumber++;
damage = weapon.getAttact(player);
System.out.println("本次攻击伤害:" + damage);
if (damage > HealthPoint){
System.out.println("怪物死亡");
HealthPoint = 0;
}else {
HealthPoint = HealthPoint - damage;
System.out.println("怪物剩余血量:" + HealthPoint);
}
}
System.out.print("杀死怪物一共攻击了"+attackNumber+"次");//杀死怪物一共攻击了多少次
}
}
/**
* 玩家抽象类
*/
abstract class GamePlayer{
public int attact = 8;
public int getAttact() {
return 0;
}
}
/**
* 男玩家类
*/
class BoyPlayer extends GamePlayer{
@Override
public int getAttact() {
return super.attact + 2;
}
}
/**
* 女玩家类
*/
class GirlPlayer extends GamePlayer{
@Override
public int getAttact() {
return super.attact;
}
}
/**
* 武器抽象类
*/
abstract class Weapon{
public int attact = 10;
public boolean getChance(int percentage){
Random random = new Random();
int i = random.nextInt(99);
if(i>=0&&i<percentage)
return true;
else
return false;
}
public int getAttact(GamePlayer gamePlayer) {
return 0;
}
}
/**
* 剑类
*/
class Sword extends Weapon{
@Override
public int getAttact(GamePlayer gamePlayer) {
boolean chance = super.getChance(40);
if (chance){
System.out.println("剑:触发双倍伤害");
return 2* super.attact + 2*gamePlayer.getAttact();
}else {
return super.attact;
}
}
}
/**
* 斧头类
*/
class Axe extends Weapon{
@Override
public int getAttact(GamePlayer gamePlayer) {
boolean chance = super.getChance(20);
if (chance){
System.out.println("斧头:触发一击必杀");
return 300;
}else {
return super.attact + 5;
}
}
}
/**
* 弓类
*/
class Bow extends Weapon{
@Override
public int getAttact(GamePlayer gamePlayer) {
boolean chance = super.getChance(20);
if (chance){
System.out.println("弓:攻击被闪避(无法造成伤害)");
return 0;
}else {
return super.attact + 15;
}
}
}
/**
* 怪物类
*/
class Monster {
Random random = new Random();
private int HealthPoint =random.nextInt(300)%(300-250+1) + 250;
public int getHealthPoint() {
System.out.println("怪物出现,血量:"+HealthPoint);
return HealthPoint;
}
}
本文地址:https://blog.csdn.net/adds001/article/details/110792559