题目要求
Player类
package ChickenGameGame ;
public class Player {
private String name;
private int HP = 100 ;
private Gun gun;
public Player ( ) {
}
public Player ( String name) {
this . name = name;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getHP ( ) {
return HP ;
}
public void setHP ( int HP ) {
this . HP = HP ;
}
public void takeGun ( Gun gun) {
if ( this . gun == null ) {
this . gun = gun;
System . out. println ( "玩家" + name + "拿到枪!" ) ;
} else {
System . out. println ( "玩家" + name + "已经有枪了!" ) ;
}
}
public void loadClip ( Clips clips) {
if ( this . gun != null ) {
this . gun. loadClips ( clips) ;
System . out. println ( "玩家" + name + "给枪装上了弹夹!" ) ;
} else {
System . out. println ( "玩家" + name + "还没有拿到枪!" ) ;
}
}
public void shot ( Player player) {
if ( gun != null ) {
if ( gun. getClips ( ) == null ) {
System . out. println ( "枪里没有装弹夹!请装弹夹!" ) ;
} else {
if ( gun. getClips ( ) . getNum ( ) == 0 ) {
System . out. println ( "弹夹中没有子弹!" ) ;
} else {
System . out. println ( "玩家" + name + "开枪打中了" + player. name) ;
this . gun. shot ( player) ;
}
}
} else {
System . out. println ( "玩家" + name + "没有枪,不能开枪!" ) ;
}
}
public void bloodLoss ( int damage) {
if ( this . HP == 0 ) {
System . out. println ( "玩家" + name + "已死亡!" ) ;
} else {
this . HP -= damage;
System . out. println ( "玩家" + name + "受到" + damage +
"点伤害,剩余" + this . HP + "血量!" ) ;
}
}
}
Gun类
package ChickenGameGame ;
public class Gun {
private Clips clips;
public Clips getClips ( ) {
return clips;
}
public void shot ( Player player) {
if ( clips != null ) {
Bullet bullet = clips. popBullet ( ) ;
if ( bullet != null ) {
bullet. hit ( player) ;
} else {
System . out. println ( "放了个空枪!" ) ;
}
} else {
System . out. println ( "枪没有弹夹,请上弹夹!" ) ;
}
}
public void loadClips ( Clips clips) {
this . clips = clips;
System . out. println ( "枪的弹夹装好了!" ) ;
}
}
Clips类
package ChickenGameGame ;
public class Clips {
private Bullet [ ] bullets = new Bullet [ 30 ] ;
private int num = 0 ;
public int getNum ( ) {
return num;
}
public void putBullet ( Bullet bullet) {
if ( bullets. length == num) {
System . out. println ( "弹夹的子弹是满的,不需要装弹!" ) ;
} else {
bullets[ num] = bullet;
num++ ;
System . out. println ( "弹夹已经装了" + num + "颗子弹!" ) ;
}
}
public Bullet popBullet ( ) {
if ( num == 0 ) {
System . out. println ( "弹夹中子弹打完了!" ) ;
return null ;
}
Bullet bullet = bullets[ num- 1 ] ;
System . out. println ( "弹夹中还剩" + -- num + "个子弹!" ) ;
return bullet;
}
}
Bullet类
package ChickenGameGame ;
public class Bullet {
private int damage = 10 ;
public void hit ( Player player) {
player. bloodLoss ( damage) ;
}
}
Test类
package ChickenGameGame ;
public class Test {
public static void main ( String [ ] args) {
Player a = new Player ( "A" ) ;
Player b = new Player ( "B" ) ;
Gun gun = new Gun ( ) ;
a. takeGun ( gun) ;
Clips clips = new Clips ( ) ;
a. loadClip ( clips) ;
for ( int i = 0 ; i < 30 ; i++ ) {
clips. putBullet ( new Bullet ( ) ) ;
}
for ( int i = 0 ; i < 20 ; i++ ) {
if ( i % 2 == 0 ) {
a. shot ( b) ;
} else {
System . out. println ( "A放了空枪,没打中B~" ) ;
}
}
}
}
最后运行结果截图