簡單對戰遊戲Java版源程式
阿新 • • 發佈:2018-12-22
簡單對戰遊戲Java版
紅警大戰Java簡單版僅供大家交流使用,有用的請點個贊或者留個言,沒用的也不要踩啊,謝謝!!!
專案結構如下:
GameTest類
import java.util.Scanner;
public class GameTest {//主函式
public static void main(String[] args) {
Scanner se = new Scanner(System.in);
int armNums;//部隊數量
int nums;//我軍軍隊序號
int numsd;//敵軍軍隊序號
//設定部隊數量
System.out.println("Welcome! Game Start!!請輸入你需要的部隊數量--");
armNums = se.nextInt();
Gun [] gun = new Gun [armNums];
Soldiers [] soldiers = new Soldiers [armNums];//建立我方軍隊儲存陣列
Gun [] gun1 = new Gun [armNums];
Soldiers [] soldiers1 = new Soldiers [armNums];//建立敵方軍隊儲存陣列
//配置我方部隊種類
for (int i = 0;i<armNums;i++){
System.out.println("部隊序號"+(i+1));
System.out.println("請輸入我方兵種:——————1:手槍兵 2:機槍兵 3:鋼炮兵");
int selectSoMe=se.nextInt();
System.out.println("請輸入我方武器:——————1:手槍 2:機槍 3:鋼炮");
int selectGunMe=se.nextInt();
gun[i] = Calc.getsGun(selectGunMe,i);
soldiers[i] = Calc.getsSo(selectSoMe,i);
}
//配置敵方部隊種類
for (int i = 0;i<armNums;i++){
System.out.println("部隊序號"+(i+1));
System.out.println("請輸入敵方兵種:——————1:手槍兵 2:機槍兵 3:鋼炮兵");
int selectSoOther=se.nextInt();
System.out.println("請輸入敵方武器:——————1:手槍 2:機槍 3:鋼炮");
int selectGunOther=se.nextInt();
gun1[i] = Calc.getsGun(selectSoOther,i);
soldiers1[i] = Calc.getsSo(selectGunOther,i);
}
//派出某一士兵對敵方任意士兵進行作戰
System.out.println("請輸入我軍派出的士兵序號");
nums = se.nextInt()-1;
System.out.println("請輸入需要攻擊敵軍的士兵序號");
numsd = se.nextInt()-1;
Calc.play(soldiers[nums], gun[nums],soldiers1[numsd],gun1[numsd]);
}
}
Gun 類
public class Gun {//武器類
private String name; //兵器名稱
private int attack; //攻擊力
private int num; //子彈數量
public Gun(String name, int attack, int num) {
super();
this.name = name;
this.attack = attack;
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
this.attack = attack;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
Soldiers類
public class Soldiers {//士兵類
private String name; //姓名
private String arms; //兵種
private int blood; //血量
public Soldiers(String name, String arms, int blood) {
super();
this.name = name;
this.arms = arms;
this.blood = blood;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getArms() {
return arms;
}
public void setArms(String arms) {
this.arms = arms;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
}
Calc類
import java.util.Scanner;
public class Calc {// 計算類
// 建立士兵
public static Soldiers getsSo(int select, int i) {
switch (select) {
case 1:
return new Soldiers("小兵" + (i + 1) + "號", "手槍兵", 30);
case 2:
return new Soldiers("小兵" + (i + 1) + "號", "機槍兵", 40);
case 3:
return new Soldiers("小兵" + (i + 1) + "號", "鋼炮兵", 50);
}
return null;
}
// 建立士兵武器
public static Gun getsGun(int select, int i) {
switch (select) {
case 1:
return new Gun("手槍" + (i + 1) + "號", 10, 30);
case 2:
return new Gun("機槍" + (i + 1) + "號", 20, 20);
case 3:
return new Gun("鋼炮" + (i + 1) + "號", 30, 10);
}
return null;
}
// 攻擊處理
public static void attack(Soldiers s1, Gun g1, Soldiers s2, Gun g2) {// (攻擊方,攻擊方攻擊力,被攻擊方,被攻擊方攻擊力)
s2.setBlood(s2.getBlood() - g1.getAttack());
g1.setNum(g1.getNum() - g1.getAttack());
}
// 雙方狀態顯示處理
public static void show(Soldiers s1, Gun g1, Soldiers s2, Gun g2) {
System.out.println("我方士兵:\t" + s1.getName() + "\t|兵種: " + s1.getArms() + "\t|所持武器: " + g1.getName()
+ "\t|生命值 : " + s1.getBlood() + "\t|彈藥數量 : " + g1.getNum());
System.out.println("敵方士兵: \t" + s2.getName() + "\t|兵種: " + s2.getArms() + "\t|所持武器: " + g2.getName()
+ "\t|生命值 : " + s2.getBlood() + "\t|彈藥數量 : " + g2.getNum() + "\n");
}
public static void GameOver() {//遊戲結束
System.out.println("遊戲結束");
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
}
public static void AddGun(Soldiers g ,Gun s) {//加彈藥
System.out.println("加彈藥成功+10,代價為血量減少8");
s.setNum(s.getNum()+10);
g.setBlood(g.getBlood()-8);
}
public static boolean decide(Soldiers s, Gun p, Soldiers s1, Gun p1) {
if (s.getBlood() <= 0) {
System.out.println("我方血量不足");
GameOver();
}
if (s1.getBlood() <= 0) {
System.out.println("敵方血量不足");
GameOver();
}
if (p.getNum() <= 0) {
System.out.println("我方彈藥不足");
AddGun(s1,p);
return true;
}
if (p1.getNum() <= 0) {
System.out.println("敵方彈藥不足");
AddGun(s,p1);
return true;
}
return true;
}
// 遊戲開始
public static void play(Soldiers s, Gun p, Soldiers s1, Gun p1) {
Scanner sc = new Scanner(System.in);
System.out.println("派出的兩方士兵初始化狀態");
Calc.show(s, p, s1, p1);
System.out.println("遊戲開始,對戰中。。。。。。。。。");
for (int i = 0; i < 16; i++) {// 最多進行16個回合
while(decide( s, p, s1, p1)){//判斷兩方彈藥以及血量情況
System.out.println("請按任意鍵回車進行下一步指令---輸入“2”回車敵方進行攻擊---輸入“1”回車我方進行攻擊-----輸入“0”回車進行休息-------------");
int a = sc.nextInt();
if (a == 1) {// 我方進行攻擊
System.out.println("第" + (i + 1) + "回合狀態");
Calc.attack(s, p, s1, p1);
Calc.show(s, p, s1, p1);
} else if (a == 2) {// 敵方進行攻擊
System.out.println("第" + (i + 1) + "回合狀態");
Calc.attack(s1, p1, s, p);
Calc.show(s1, p1, s, p);
} else {
System.out.println("第" + (i + 1) + "回合狀態");
i++;
Calc.show(s, p, s1, p1);
}
}
}
GameOver();
}
}