1. 程式人生 > >簡單對戰遊戲Java版源程式

簡單對戰遊戲Java版源程式

簡單對戰遊戲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();
    }
}