更新內容:
1、修正文件返回菜單錯誤
2、加入金幣系統
3、使防御能夠正常起作用
4、武器商店開放
5、背包管理
6、治療中心會收取一定費用
PS:
預計中的:
怪物掉落物品
存取檔功能
還未實現
還是6個java文件
1、allObject.java
package com.home.jiangfan;
public interface allObject {
?? void escap();
?? void generalAttack();
?? void magicAttack();
??
}
2、UserFace.java
package com.home.jiangfan;
import java.util.*;
public class UserFace {
?public String name;
?//歡迎提示
?public void welcome(){
??System.out.println("您好!歡迎進入夢游世界!");
??System.out.println("現在創建新人物,請您輸入人物昵稱:");
??Scanner in=new Scanner(System.in);
??this.name=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??
?}
?//顯示人物當前數據
?public void printPlayer(Player p){
??System.out.println("人物昵稱:"+p.name);
??System.out.println("等級:"+p.lv);
??System.out.println("hp:"+p.hp);
??System.out.println("mp:"+p.mp);
??System.out.println("攻擊力:"+p.attack);
??System.out.println("防御力:"+p.armor);
??System.out.println("技能:"+p.skill);
??System.out.println("裝備:"+p.iteams);
??System.out.println("當前經驗:"+p.exp);
??System.out.println("夢游幣:"+p.gold);
??System.out.println("升級到下級所需經驗:"+(p.lv+p.lv)*10);
??System.out.println("");
??System.out.println("按任意鍵繼續");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??printOperations(p);
??if(choose==null || choose==""){
???printOperations(p);
??}
?}
?public void printMonster(Monster m,Player p){
??System.out.println("怪物名稱:"+m.name);
??System.out.println("等級:"+m.lv);
??System.out.println("hp:"+m.hp);
??System.out.println("mp:"+m.mp);
??System.out.println("攻擊力:"+m.attack);
??System.out.println("防御力:"+m.armor);
??System.out.println("技能:"+m.skill);
??System.out.println("");
??System.out.println("按任意鍵繼續");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??printOperations(p);
??if(choose==null || choose==""){
???printOperations(p);
??
?}
?}
??? //游戲操作總菜單
?public void printOperations(Player player){
??Operations o1=new Operations();
??System.out.println("1,刷怪練級? 2,挑戰Boss? 3,治療? 4,人物狀態? 5,武器商店? 6,背包狀態");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??if(choose.equals("1")){
???o1.lianji(player);
??}
??if(choose.equals("2")){
???o1.vsBoss(player);
???System.out.println("挑戰boss");
??}
??if(choose.equals("3")){
???o1.heal(player);
???System.out.println("治療");
??}
??if(choose.equals("4")){
???printPlayer(player);
??}
??if(choose.equals("5")){
???o1.weaponShop(player);
??}
??if(choose.equals("6")){
???o1.bag(player);
??}
??else{
???printOperations(player);
???}
?}
?
?//程序入口點
?public static void main(String[] args){
??//創建人物
??UserFace uf=new UserFace();
??uf.welcome();
??Player p1=new Player(1,1,"天神下凡","黑龍*爪",uf.name);
??//uf.printPlayer(p1);
??System.out.println(p1.name+",歡迎進入夢游世界!");
??//新人物進入操作界面
??uf.printOperations(p1);
?}
}
3、Operations.java
package com.home.jiangfan;
import java.util.Scanner;
public class Operations {
?//戰斗操作界面
?public void fight(Monster monster,Player player){
??while(monster.hp>0 & player.hp>0){
???System.out.println("1,普通攻擊 2,法術攻擊 3,自身狀態 4,怪物狀態");
???Scanner inInner=new Scanner(System.in);
???String chooseInner = inInner.nextLine();
???System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
???//選擇普通攻擊
???if(chooseInner.equals("1")){
????JudgementPK pkkaikai=new JudgementPK();
????pkkaikai.judgementGA(player, monster);
???}
???//選擇法術攻擊
???if(chooseInner.equals("2")){
????JudgementPK pkkaikai=new JudgementPK();
????pkkaikai.judgementMA(player, monster);
???}
???//自身狀態
???if(chooseInner.equals("3")){
????System.out.println("人物昵稱:"+player.name);
????System.out.println("等級:"+player.lv);
????System.out.println("hp:"+player.hp);
????System.out.println("mp:"+player.mp);
????System.out.println("攻擊力:"+player.attack);
????System.out.println("防御力:"+player.armor);
????System.out.println("技能:"+player.skill);
????System.out.println("裝備:"+player.iteams);
????System.out.println("當前經驗:"+player.exp);
????System.out.println("夢游幣:"+player.gold);
????System.out.println("升級到下級所需經驗:"+(player.lv+player.lv)*10);
????System.out.println("");
????System.out.println("按任意鍵繼續");
????Scanner in=new Scanner(System.in);
????String choose=in.nextLine();
????fight(monster,player);
????if(choose==null || choose==""){
?????fight(monster,player);
????}
????
???}
???//怪物狀態
???if(chooseInner.equals("4")){
????System.out.println("怪物名稱:"+monster.name);
????System.out.println("等級:"+monster.lv);
????System.out.println("hp:"+monster.hp);
????System.out.println("mp:"+monster.mp);
????System.out.println("攻擊力:"+monster.attack);
????System.out.println("防御力:"+monster.armor);
????System.out.println("技能:"+monster.skill);
????System.out.println("");
????System.out.println("按任意鍵繼續");
????Scanner in=new Scanner(System.in);
????String choose=in.nextLine();
????System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
????fight(monster,player);
????if(choose==null || choose==""){
?????fight(monster,player);
????}
?
???}else{
????fight(monster,player);
???}
??}
?}
?
?//二級操作界面--刷怪練級
?public void lianji(Player player){
??System.out.println("歡迎進入練級區域:請輸入您想挑戰的怪物:");
??System.out.println("1,凱凱 2,力力 3,黑客 4,研究生");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??if(choose.equals("1")){
???System.out.println("您選擇拿凱凱練級!");
???Monster kaikai=new Monster(11,1,"凱凱發傻","凱凱");
???fight(kaikai,player);
??}
??if(choose.equals("2")){
???System.out.println("您選擇拿力力練級!");
???Monster lili=new Monster(12,5,"力力發呆","力力");
???fight(lili,player);
??}
??if(choose.equals("3")){
???System.out.println("您選擇拿黑客練級!");
???Monster hacker=new Monster(13,15,"黑客病毒","黑客");
???fight(hacker,player);
??}
??if(choose.equals("4")){
???System.out.println("您選擇拿研究生練級!");
???Monster graduate=new Monster(14,45,"知識就是力量","研究生");
???fight(graduate,player);
??}else{
???lianji(player);
??}
?}
?
?
?//二級操作界面--vsBoss
?public void vsBoss(Player player){
??System.out.println("挑戰Boss請小心:請輸入您想挑戰的Boss:");
??System.out.println("1,小皮 2,未開放 3,未開放 4,未開放");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??if(choose.equals("1")){
???System.out.println("您選擇挑戰小皮!");
???Monster xiaopi=new Monster(101,100,"食量無限","小皮");
???fight(xiaopi,player);
??}
??if(choose.equals("2")){
???System.out.println("未開放!看不懂啊!!!");
???vsBoss(player);
??}
??if(choose.equals("3")){
???System.out.println("未開放!看不懂啊!!!");
???vsBoss(player);
??}
??if(choose.equals("4")){
???System.out.println("未開放!看不懂啊!!!");
???vsBoss(player);
??}else{
???System.out.println("謝謝啊~~你按錯了~你個2~!");
???vsBoss(player);
??}
?}
?
?
?//二級操作界面--治療
?public void heal(Player player){
??System.out.println("歡迎您來到治療中心!目前版本為免費治療~~");
??System.out.println("請選擇:1、治療自己 2、查看當前狀態 3離開");
??Scanner in=new Scanner(System.in);
??int choose=in.nextInt();
??System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
??//治療自己
??if(choose==1){
???System.out.println("您目前的等級,在治療中心恢復hp需要:"+player.lv*player.lv+"個夢游幣。確認請按1,返回治療中心請按2");
???Scanner inInner=new Scanner(System.in);
???String chooseInner=inInner.nextLine();
???//確認治療,判斷金幣是否足夠治療
????if(chooseInner.equals("1")){
?????if(player.gold>=player.lv*player.lv){
??????player.hp=player.lv*200;
??????player.gold-=player.lv*player.lv;
??????System.out.println("恭喜您~治療完畢!您的當前hp為:"+player.hp);
??????System.out.println("消耗夢游幣:"+player.lv*player.lv);
??????heal(player);
?????}else{
??????System.out.println("您的夢游幣不足!返回治療中心");
??????heal(player);
?????}
????}else{
?????heal(player);
????}
??}
??if(choose==2){
???UserFace back=new UserFace();
???back.printPlayer(player);
??}if(choose==3){
???UserFace back=new UserFace();
???back.printOperations(player);
??}
???}
??
?//二級操作界面---武器商店
?public void weaponShop(Player player){
??System.out.println("歡迎光臨武器店");
??System.out.println("1,購買武器 2,離開");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??if(choose.equals("1")){
??System.out.println("請選擇您要購買的武器的號碼:");
??System.out.println("1、無情打擊之刃? 屬性:攻擊+1000??? 價格:10000夢游幣");
??System.out.println("2、斬龍者??????? 屬性:攻擊+10000?? 價格:99999夢游幣");
??Scanner inInner=new Scanner(System.in);
??String chooseInner=inInner.nextLine();
??if(chooseInner.equals("1")){
???if(player.gold>=10000){
????if(player.bag1==0 || player.bag2==0){
?????System.out.println("恭喜購買 無情打擊之刃 成功");
?????player.gold-=10000;
?????System.out.println("夢游幣減少:10000");
?????System.out.println("無情打擊之刃 裝入您的背包");
?????if(player.bag1==0){
??????player.bagIteam1="無情打擊之刃";
??????player.bag1=1;
?????}else{
??????player.bagIteam2="無情打擊之刃";
??????player.bag2=1;
?????}
????}else{
?????System.out.println("背包位置不夠,請確認背包有空閑位置再進行購買!");
?????weaponShop(player);
????}
???}else{
????System.out.println("您的夢游幣不足!");
????weaponShop(player);
???}
??}
??if(chooseInner.equals("2")){
???if(player.gold>=99999){
????if(player.bag1==0 || player.bag2==0){
?????System.out.println("恭喜購買 斬龍者 成功");
?????player.gold-=99999;
?????System.out.println("夢游幣減少:99999");
?????System.out.println("斬龍者 裝入您的背包");
?????if(player.bag1==0){
??????player.bagIteam1="斬龍者";
??????player.bag1=1;
?????}else{
??????player.bagIteam2="斬龍者";
??????player.bag2=1;
?????}
????}else{
?????System.out.println("背包位置不夠,請確認背包有空閑位置再進行購買!");
?????weaponShop(player);
????}
???}else{
????System.out.println("您的夢游幣不足!");
????weaponShop(player);
???}
??}
??}
??//離開
??else{
???UserFace back=new UserFace();
???back.printOperations(player);
??}
?}
?
?//二級操作界面--背包狀態
?public void bag(Player player){
??System.out.println("背包界面:1、查看背包 2、更換裝備 3、返回");
??Scanner in=new Scanner(System.in);
??String choose=in.nextLine();
??//查看背包
??if(choose.equals("1")){
???System.out.println("您現在背包的狀態:");
???System.out.println("格子一:"+player.bagIteam1);
???System.out.println("格子二:"+player.bagIteam2);
???
???System.out.println("1、清理背包 2、返回");
???Scanner inInner=new Scanner(System.in);
???String chooseInner=inInner.nextLine();
???
???if(chooseInner.equals("1")){
????System.out.println("1、清空格子一 2、清空格子二 3、返回");
????Scanner in2=new Scanner(System.in);
????String choose2=in2.nextLine();
????if(choose2.equals("1")){
?????System.out.println("格子一已經清空");
?????player.bag1=0;
?????player.bagIteam1="無";
?????bag(player);
????}else if(choose2.equals("2")){
?????System.out.println("格子二已經清空");
?????player.bag2=0;
?????player.bagIteam2="無";
?????bag(player);
????}else{
?????bag(player);
????}
???}else{bag(player);}
??}
??//更換裝備
??if(choose.equals("2")){
???if(player.bag1==0 && player.bag2==0){
???System.out.println("你背包里什么都沒有,你換啥啊你?!");
???}
???if(player.bag1==1 || player.bag2==1){
????System.out.println("背包格一:"+player.bagIteam1);
????System.out.println("背包格二:"+player.bagIteam2);
????System.out.println("請選擇更換哪個格子內的裝備到人物身上:");
????System.out.println("1、背包格一 2、背包格二 3、返回:");
????Scanner in3=new Scanner(System.in);
????String choose3=in3.nextLine();
????if(choose3.equals("1")){
?????player.attack-=player.weapon;
?????String c="";
?????c=player.iteams;
?????player.iteams=player.bagIteam1;
?????player.bagIteam1=c;
?????System.out.println("你裝備上了:"+player.iteams);
?????if(player.iteams.equals("斬龍者")){
??????player.weapon=10000;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}else if(player.iteams.equals("無情打擊之刃")){
??????player.weapon=1000;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}else{
??????player.weapon=10;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}
????}
????if(choose3.equals("2")){
?????player.attack-=player.weapon;
?????String c="";
?????c=player.iteams;
?????player.iteams=player.bagIteam2;
?????player.bagIteam2=c;
?????System.out.println("你裝備上了:"+player.iteams);
?????if(player.iteams.equals("斬龍者")){
??????player.weapon=10000;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}else if(player.iteams.equals("無情打擊之刃")){
??????player.weapon=1000;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}else{
??????player.weapon=10;
??????player.attack = (player.lv*player.lv+10)+player.weapon;
?????}
????}else{
?????bag(player);
????}
????
???}
??}
??//返回
??else{
??? UserFace back=new UserFace();
??? back.printOperations(player);
???}
?}
?}