RPG游戏人物设计

package myrpg;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class RolePlaying {
	 public static void main(String[] args) {
	        boolean flag = true;
	        Scanner sc = new Scanner(System.in);
	        Role role = new Role();
	        RaceCareer rac = new RaceCareer();
	        CareerAttribute ca = new CareerAttribute();
	        do{
	            role.Setting();
	            int race = rac.SelectRace();
	            rac.SelectCareer(race);
	            role.output();
	            rac.output();
	            ca.initialAttribute(rac.getCareer());
	            ca.output();
	            System.out.println("是否满意角色属性?(0/1)若不满意,则重新创建。");
	            String str = sc.next();
	            if("0".equals(str) || "1".equals(str)){
	                break;
	            }
	        }while(flag);
	        saveRoleInformation(role,rac,ca);
	        System.out.println("角色信息已成功保存。");
	    }
	    public static void saveRoleInformation(Role role,RaceCareer rac,CareerAttribute ca){
	        try {
	            FileWriter desFile = new FileWriter("E:\\程序设计方法学\\RPG游戏\\roles_information.txt",true);
	            BufferedWriter out = new BufferedWriter(desFile);
	            out.write("姓名\t\t\t"+role.getName());
	            out.newLine();
	            if(role.getGender()==0){
	                out.write("性别\t\t\t"+"男性");
	            }else{
	                out.write("性别\t\t\t"+"女性");
	            }
	            out.newLine();
	            switch(rac.getRace()){
	                case 0:
	                    out.write("种族\t\t\t"+"人类");
	                    break;
	                case 1:
	                    out.write("种族\t\t\t"+"精灵");
	                    break;
	                case 2:
	                    out.write("种族\t\t\t"+"兽人");
	                case 3:
	                    out.write("种族\t\t\t"+"矮人");
	                    break;
	                case 4:
	                    out.write("种族\t\t\t"+"元素");
	                    break;
	                default:
	                    break;
	            }
	            out.newLine();
	            switch(rac.getCareer()){
	                case 0:
	                    out.write("职业\t\t\t"+"狂战士");
	                    break;
	                case 1:
	                    out.write("职业\t\t\t"+"圣骑士");
	                    break;
	                case 2:
	                    out.write("职业\t\t\t"+"刺客");
	                    break;
	                case 3:
	                    out.write("职业\t\t\t"+"猎手");
	                    break;
	                case 4:
	                    out.write("职业\t\t\t"+"祭司");
	                    break;
	                case 5:
	                    out.write("职业\t\t\t"+"巫师");
	                    break;
	                default:
	                    break;
	            }
	            out.newLine();
	            out.write("力量\t\t\t"+ca.getStrength());
	            out.newLine();
	            out.write("敏捷\t\t\t"+ca.getFlexibility());
	            out.newLine();
	            out.write("体力\t\t\t"+ca.getPhysical());
	            out.newLine();
	            out.write("智力\t\t\t"+ca.getIntelligence());
	            out.newLine();
	            out.write("智慧\t\t\t"+ca.getWisdom());
	            out.newLine();
	            out.write("生命值\t\t\t"+ca.getHP());
	            out.newLine();
	            out.write("魔法值\t\t\t"+ca.getMP());
	            out.newLine();
	            out.close();
	        }catch(FileNotFoundException e){
	            e.printStackTrace();
	        }catch(IOException e){
	            e.printStackTrace();
	        }
	    }
	}
package myrpg;

import java.util.Scanner;

public class Role {
	String name;
	int gender;
	public String getName(){
		return name;
	}
	public void setName(){
		this.name=name;
	}
	public int getGender(){
		return gender;
	}
	public void setGender(){
		this.gender=gender;
	}
	public int Setting(){
		System.out.println("请输入角色名称:");
		Scanner sc=new Scanner(System.in);
		this.name=sc.next();
		while(true){
			System.out.println("输入角色性别:(0、男        1、女)");
			this.gender=sc.nextInt();
			if(gender==0||gender==1){
				break;	
			}
			else{
				System.out.println("请选择0或1来确定性别");
			}
		}
		return gender;
	}
		public void output(){
			System.out.println("===================");
			System.out.println("姓名\t\t\t\t"+this.name);
			System.out.println("=================");
			if(gender==0){
				System.out.println("性别\t\t\t"+"男性");
			}
			else{
				System.out.println("性别\t\t\t"+"女性");
			}
		}
}

package myrpg;
import java.util.Scanner;

	public class RaceCareer {
	    private int race;
	    private int career;
	    private String[] races = {"人类","精灵","兽人","矮人","元素"};
	    private String[] careers = {"狂战士","圣骑士","刺客","猎手","祭司","巫师"};

	    public int getRace() {
	        return race;
	    }

	    public void setRace(int race) {
	        this.race = race;
	    }

	    public int getCareer() {
	        return career;
	    }

	    public void setCareer(int career) {
	        this.career = career;
	    }

	    public int SelectRace(){
	        while(true){
	            System.out.println("请选择角色的种族(0人类,1精灵,2兽人,3矮人,4元素):");
	            Scanner sc = new Scanner(System.in);
	            this.race = sc.nextInt();
	            if(race >= 0 && race <= 4){
	                //输入正确跳出循环
	                break;
	            }else{
	                System.out.println("请输入0-4之间的数字选择种族");
	            }
	        }
	        return race;
	    }
	    public int SelectCareer(int race){
	        switch(race){
	            case 0:
	                while(true){
	                    System.out.println("请选择职业(0狂战士,1圣骑士,2刺客,3猎手,4祭司,5巫师):");
	                    Scanner sc = new Scanner(System.in);
	                    if(career >= 0 && career <=5){
	                        //输入正确跳出循环
	                        break;
	                    }else{
	                        System.out.println("请输入0-5之间的数字选择职业。");
	                    }
	                }
	                break;
	            case 1:
	                while(true){
	                    System.out.println("请选择职业(2刺客,3猎手,4祭司,5巫师):");
	                    Scanner sc = new Scanner(System.in);
	                    this.career = sc.nextInt();
	                    if(career >= 2 && career <= 5){
	                        break;
	                    }else{
	                        System.out.println("请输入2-5之间的职业选择职业");
	                    }
	                }
	                break;
	            case 2:
	                while(true){
	                    System.out.println("请选择职业(0狂战士,3猎手,4祭司):");
	                    Scanner sc = new Scanner(System.in);
	                    this.career = sc.nextInt();
	                    if(career == 0 || career == 3 || career == 4){
	                        break;
	                    }else{
	                        System.out.println("请输入0、3、4选择职业");
	                    }
	                }
	                break;
	            case 3:
	                while(true){
	                    System.out.println("请选择职业(0狂战士,1圣骑士,4祭司):");
	                    Scanner sc = new Scanner(System.in);
	                    this.career = sc.nextInt();
	                    if(career == 0 || career == 1 || career == 4){
	                        break;
	                    }else{
	                        System.out.println("请输入数字0、1或4选择职业");
	                    }
	                }
	                break;
	            case 4:
	                while(true){
	                    System.out.println("请选择职业(4祭司,5巫师):");
	                    Scanner sc = new Scanner(System.in);
	                    this.career = sc.nextInt();
	                    if(career == 4 || career == 5){
	                        break;
	                    }else{
	                        System.out.println("请输入4或5来选择职业!");
	                    }
	                }
	                break;
	            default:
	                break;
	        }
	        return career;
	    }

	    public void output(){
	        System.out.println("-----------------------");
	        System.out.println("种族\t\t\t"+races[this.race]);
	        System.out.println("------------------------");
	        System.out.println("职业\t\t\t"+careers[this.career]);
	    }
	}

package myrpg;
import java.util.Random;
public class CareerAttribute {
	private int strength;
    private int flexibility;
    private int physical;
    private int intelligence;
    private int wisdom;
    private int HP;  //生命值
    private int MP;  //魔法值

    public int getStrength() { return strength;}

    public void setStrength(int strength) {this.strength = strength;}

    public int getFlexibility() { return flexibility;}

    public void setFlexibility(int flexibility) { this.flexibility = flexibility; }

    public int getPhysical() { return physical; }

    public void setPhysical(int physical) { this.physical = physical; }

    public int getIntelligence() { return intelligence; }

    public void setIntelligence(int intelligence) { this.intelligence = intelligence; }

    public int getWisdom() { return wisdom; }

    public void setWisdom(int wisdom) { this.wisdom = wisdom; }

    public int getHP() { return HP; }

    public void setHP(int HP) { this.HP = HP; }
    
    public int getMP() { return MP; }

    public void setMP(int MP) { this.MP = MP; }

    public void AutoAttribute(int str,int flex,int phy,int intell,int wis){
        int sum = 0;
        Random random = new Random();
        do{
            strength = random.nextInt(5)%10 + str;
            flexibility = random.nextInt(5)%10 + flex;
            physical = random.nextInt(5)%10 + phy;
            intelligence = random.nextInt(5)%10 + intell;
            wisdom = random.nextInt(5)%10 + wis;
            sum = strength + flexibility + physical + intelligence + wisdom;
        }while(sum != 100);
        HP = physical * 20;
        MP = (wisdom + intelligence) *10;
    }

    public void initialAttribute(int career){
        if(career == 0){
            AutoAttribute(40,20,30,5,5);
        }
        if(career == 1){
            AutoAttribute(25,15,30,20,10);
        }
        if(career == 2){
            AutoAttribute(20,35,20,15,10);
        }
        if(career == 3){
            AutoAttribute(15,40,15,10,20);
        }
        if(career == 4){
            AutoAttribute(15,20,15,35,15);
        }
        if(career == 5){
            AutoAttribute(10,20,10,20,40);
        }
    }

    public void output(){
        System.out.println("----------------------------");
        System.out.println("力量\t\t\t"+this.strength);
        System.out.println("----------------------------");
        System.out.println("敏捷\t\t\t"+this.flexibility);
        System.out.println("----------------------------");
        System.out.println("体力\t\t\t"+this.physical);
        System.out.println("-----------------------------");
        System.out.println("智力\t\t\t"+this.intelligence);
        System.out.println("------------------------------");
        System.out.println("智慧\t\t\t"+this.wisdom);
        System.out.println("------------------------------");
        System.out.println("生命值\t\t\t"+this.HP);
        System.out.println("-------------------------------");
        System.out.println("魔法值\t\t\t"+this.MP);
        System.out.println("--------------------------------");
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值