使用Java面向对象的思想设计一个即时战略游戏的类结构 主要类如下: (1)人口类(Person)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java面向对象的思想设计一个即时战略游戏的类结构 主要类如下: (1)人口类(Person)相关的知识,希望对你有一定的参考价值。

使用Java面向对象的思想设计一个即时战略游戏的类结构
主要类如下:
(1)人口类(Person)
属性:生命值(lifeValue),攻击力(attackPower),消耗资源数(needResource)。
方法:进攻(attack)
子类有以下几种。
工兵(Sapper)扩展方法:创造建筑createConstruction(),采集资源collectResource()
护士(Nurse)扩展方法:疗伤(cure)
(2)建筑类(Construction)
属性:生命值,资源消耗数。
(3)玩家类(Player)
属性:玩家名称。玩家资源值,玩家所拥有的人口对象,玩家所拥有的建筑对象。
在主方法中测试以上程序,创建两个玩家,分别生成人口和建筑类攻击对方。
问题补充:具体玩法:
******************************************************************************************
玩家 攻击 生命值 消耗资源数 建筑 资源 工兵 护士
Player1 a1 30 0 0 0 Sc1 Sr1 Nc1
Player2 a2 30 0 0 0 Sc2 Sr2 Nc2
*******************************************************************************************
玩的时候如果按a1,则Player1生命值+1资源消耗数+1,Player2生命值-1,
按Sc1,Player1建筑+1,
按Sr1,Player1资源+1,
按Nc1,Player1生命值+1。
差不多是这样就行。有哪位大神可以帮帮我吗?

package baidu;

public class Person
//生命值
private int lifeValue;
//攻击力
private int attackPower;
//消耗资源数
private int needResource;

public int attack(String select)
return this.lifeValue;


public int getLifeValue()
return lifeValue;


public void setLifeValue(int lifeValue)
this.lifeValue = lifeValue;


public int getAttackPower()
return attackPower;


public void setAttackPower(int attackPower)
this.attackPower = attackPower;


public int getNeedResource()
return needResource;


public void setNeedResource(int needResource)
this.needResource = needResource;




package baidu;

public class Nurse extends Person
public void cure()
System.out.println("begin cure!");



package baidu;

public class Sapper extends Person
private int collectRes = 0;
//创造建筑createConstruction(),采集资源collectResource()
public void createConstruction()
System.out.println("begin to createConstruction...");


public int collectResource()
return collectRes;



package baidu;

public class Player
//玩家名称。玩家资源值,玩家所拥有的人口对象,玩家所拥有的建筑对象。
private String player_name;
private int player_res;
private Person player_per;
private Construction player_con;

public String getPlayer_name()
return player_name;

public void setPlayer_name(String player_name)
this.player_name = player_name;

public int getPlayer_res()
return player_res;

public void setPlayer_res(int player_res)
this.player_res = player_res;

public Person getPlayer_per()
return player_per;

public void setPlayer_per(Person player_per)
this.player_per = player_per;

public Construction getPlayer_con()
return player_con;

public void setPlayer_con(Construction player_con)
this.player_con = player_con;




package baidu;

public class Person
//生命值
private int lifeValue;
//攻击力
private int attackPower;
//消耗资源数
private int needResource;

public int attack(String select)
return this.lifeValue;


public int getLifeValue()
return lifeValue;


public void setLifeValue(int lifeValue)
this.lifeValue = lifeValue;


public int getAttackPower()
return attackPower;


public void setAttackPower(int attackPower)
this.attackPower = attackPower;


public int getNeedResource()
return needResource;


public void setNeedResource(int needResource)
this.needResource = needResource;



package baidu;

import java.util.Scanner;

public class PlayTest

public static void main(String[] args)
Player p1 = new Player();
Player p2 = new Player();
//设置第一个玩家的游戏信息
p1.setPlayer_name("player1");
//攻击力
p1.getPlayer_per().attack("a1");
p1.getPlayer_per().setLifeValue(30);
p1.getPlayer_per().setNeedResource(0);
p1.getPlayer_con().setNeedResource(0);
p1.setPlayer_res(0);
//设置第二个玩家的游戏信息
p2.setPlayer_name("player2");
//攻击力
p2.getPlayer_per().attack("a2");
p2.getPlayer_per().setLifeValue(30);
p2.getPlayer_per().setNeedResource(0);
p2.getPlayer_con().setNeedResource(0);
p2.setPlayer_res(0);

//开始准备资源
p1.getPlayer_per();
p1.getPlayer_con();
p2.getPlayer_per();
p2.getPlayer_con();
//游戏规则
String key1 = "a1";
String key2 = "Sc1";
String key3 = "Sr1";
String key4 = "Nc1";
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();

if(key1.equals(input))
p1.getPlayer_per().setLifeValue(p1.getPlayer_per().getLifeValue()+1);
p1.getPlayer_per().setNeedResource(p1.getPlayer_per().getNeedResource()+1);
p2.getPlayer_per().setLifeValue(p2.getPlayer_per().getLifeValue()-1);
else if(key2.equals(input))
p1.getPlayer_con().setCurrentSum(+1);
p1.setPlayer_con(p1.getPlayer_con());
else if(key3.equals(input))
p1.setPlayer_res(p1.getPlayer_res()+1);
else if(key4.equals(input))
p1.getPlayer_per().setLifeValue(+1);
p1.setPlayer_per(p1.getPlayer_per());

System.out.println("当前玩家1的进攻以及资源");
System.out.println("当前玩家2的进攻以及资源");


追问

显示了好多错误

追答

自己改改吧,这个大体框架已经帮你搭好了,我是在是没有那么多时间
谢了这么多,起码给个采纳吧

追问

非常感谢

参考技术A 有详细点的文档吗?就这样你上面的一些东西很难理解.......,
按Sc1,Player1建筑+1,
按Sr1,Player1资源+1,
按Nc1,Player1生命值+1。
这些又是什么意思追问

不一定按这个玩法的

只需一个大概框架

以上是关于使用Java面向对象的思想设计一个即时战略游戏的类结构 主要类如下: (1)人口类(Person)的主要内容,如果未能解决你的问题,请参考以下文章

面向对象设计思想

Java中使用了设计模式思想的类都有哪些

Java面向对象(上)

面向对象的设计思想

Java基础学习——面向对象思想

游戏设计模式——面向数据编程思想