吃鸡游戏!

编程入门 行业动态 更新时间:2024-10-07 16:16:33

吃鸡<a href=https://www.elefans.com/category/jswz/34/1770081.html style=游戏!"/>

吃鸡游戏!

题目要求

Player类

package ChickenGameGame;
/*
类	玩家 Player,开局的时候,默认血量为100,没有枪属性  昵称 name血量 HP枪 gun行为  捡枪(枪)装弹(弹夹,子弹)上膛(弹夹)开枪(玩家)掉血(伤害值)
*/
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) {//看看当前血量还有多少,到0就死亡if (this.HP == 0){System.out.println("玩家" + name + "已死亡!");}else {this.HP -= damage; //掉血System.out.println("玩家" + name + "受到" + damage +"点伤害,剩余" + this.HP + "血量!");}}
}

Gun类

package ChickenGameGame;
/*
类	枪属性弹夹 clips行为装弹夹=Player上膛(弹夹)开枪(玩家)   ,如果开枪没打中的话,提示放了一个空枪
*/
public class Gun {private Clips clips;public Clips getClips() {return clips;}//开枪public void shot(Player player){//如果弹夹不为空,才能开枪if (clips != null){//弹夹调用出弹方法Bullet bullet = clips.popBullet();//如果子弹不为null,子弹可以击中玩家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;
/*
类  弹夹,弹夹默认只能装入30颗子弹属性 子弹 bullet行为 装弹(子弹)出弹()
*/
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;
/*
类	子弹       默认伤害是10,命中玩家后玩家掉血属性伤害值 damage行为命中 hit(玩家)
*/
public class Bullet {private int damage = 10; //默认值为10public void hit(Player player){player.bloodLoss(damage);}
}

Test类

package ChickenGameGame;
//设计一个吃鸡的游戏// 类创建好以后,创建两个角色,角色A和角色B, 角色A出场后,拿到枪,
// 装上子弹以后,开枪打角色B,每次开枪需要返回 :
// A开枪打中了B,B的血量还有多少,如果没打中,就提示A放了一个空枪,没有打中B,直到B死亡,流程结束
public class Test {public static void main(String[] args) {Player a = new Player("A");Player b = new Player("B");//a.shot(b);//a捡枪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());}//a.shot(b);for (int i = 0; i < 20; i++) {if (i % 2 == 0){a.shot(b);}else {System.out.println("A放了空枪,没打中B~");}}}
}

最后运行结果截图

更多推荐

吃鸡游戏!

本文发布于:2024-03-05 21:47:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713533.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:游戏

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!