當前位置:遊戲中心平台 - 遊戲盒子 - 求壹個簡單的RPG遊戲代碼,用JAva編寫。

求壹個簡單的RPG遊戲代碼,用JAva編寫。

包裹?com.lxi

進口?Java . io . buffered reader;

進口?Java . io . inputstreamreader;

公共?班級?Rpg?{

@SuppressWarnings("未選中")

公共?靜電?作廢?main(String[]?args)?摔投?例外?{

System.out.println("在此輸入兩個字符進行PK,用英文逗號分隔:?[BM,DH,MK]”;

BufferedReader?br?=?新的?BufferedReader(新?InputStreamReader(system . in));

Class & ltPerson & gt?c 1;

Class & ltPerson & gt?C2;

試試?{

字符串?臨時工?=?br . readline();

String[]?str?=?temp.split(",");

如果?(str.length?!=?2)?{

扔?新的?異常(“輸入格式錯誤,按默認PK”);

}

c1?=?(Class & ltPerson & gt)?Class.forName("com.lxi。"

+?str[0]。toupper case());

c2?=?(Class & ltPerson & gt)?Class.forName("com.lxi。"

+?str[1]。toupper case());

}?接住?(例外?e)?{

//?托多?自動生成?接住?街區

c1?=?(Class & ltPerson & gt)?class . forname(" com . lxi . BM ");

c2?=?(Class & ltPerson & gt)?class . forname(" com . lxi . DH ");

}

試試?{

人?p1?=?c 1 . new instance();

人?p2?=?C2 . new instance();

龍?時間?=?system . current time millis();

龍?nextTime1?=?(龍)?(時間?+?p 1 . cold time * 1000);?//

龍?下次2?=?(龍)?(時間?+?p2 . cold time * 1000);?//攻擊時間

系統。out . println("-遊戲開始-");

什麽時候?(真)?{

龍?當前時間?=?system . current time millis();

如果?(nextTime1?& lt?currenTime)?{?//時間到了就攻擊

p 1 . hit(p2);

nextTime1?+=?p1.coldTime*1000?+?p 1 . wait time * 1000;?//下次攻擊時間=冷卻時間+昏迷時間

p1 .等待時間?=?0;?//在回合結束時,重置昏迷時間為0。

}

如果?(nextTime2?& lt?currenTime)?{

p2 . hit(p 1);

下次2?+=?p2.coldTime*1000?+?p2 . wait time * 1000;

p2.waitTime?=?0;

}

}

}?接住?(ClassCastException?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}?接住?(InstantiationException?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}?接住?(IllegalAccessException?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}?接住?(例外?e)?{

e . printstacktrace();

}

}

}包?com.lxi

進口?Java . util . random;

班級?BM?延伸?人?{

公共?BM()?{

瓦爾。=?650;

酷暑嗎?=?1.5;

打架?=?40;

偶然事件。=?3;

機會辯護?=?3;

等待時間?=?0;

}

int?數數?=?0;//防禦技能發動的次數

int?臨時工?=?40;//攻擊力,數值和戰鬥壹樣

布爾?hitFlag?=?假的;

布爾?defenseFlag?=?假的;

隨機?蘭德?=?新的?random();

公共?作廢?打(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceHit)?{

打架?=?打架?*?2;//發動雙重攻擊

hitFlag?=?真實;

}

int?受傷了?=?p.defense(本);

帕瓦爾?=?帕瓦爾?-?傷害;

打架?=?溫度;?//恢復到單壹攻擊

如果?(p.val?& lt=?0)?{

system . out . println(this . getclass()。getSimpleName()?+?“贏了!”);

system . exit(0);

}

system . out . println(this . getclass()。getSimpleName()?+?“攻擊”

+?p.getClass()。getSimpleName()?+?","

+?this.getClass()。getSimpleName()

+?(this.hitFlag「發動攻擊技能」?:?“無攻擊技能”)

+?p.getClass()。getSimpleName()

+?(this.defenseFlag“發射防禦技能”?:?“防禦技能未激活”)

+?this.getClass()。getSimpleName()?+?":"?+?這個瓦爾。+?","

+?p.getClass()。getSimpleName()?+?":"?+?p . val);

hitFlag?=?假的;

defenseFlag?=?假的;

}

公共?int?防禦(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceDefense)?{

如果?(算嗎?!=?0)?{

帕瓦爾?=?帕瓦爾?-?p.fight

count++;

defenseFlag?=?真實;

如果?(p.val?& lt=?0)?{

system . out . println(this . getclass()。getSimpleName()?+?“贏了!”);

system . exit(0);

}

}

}

回歸?p.fight

}

}

班級?MK?延伸?人?{

公共?MK()?{

瓦爾。=?700;

酷暑嗎?=?2.5;

打架?=?50;

機會辯護?=?6;

偶然事件。=?3;

等待時間?=?0;

}

布爾?hitFlag?=?假的;

布爾?defenseFlag?=?假的;

隨機?蘭德?=?新的?random();

公共?作廢?打(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceHit)?{

p .等待時間?=?3;//打暈對方3s。

hitFlag?=?真實;

}

int?受傷了?=?p.defense(本);

帕瓦爾?=?帕瓦爾?-?傷害;

如果?(p.val?& lt=?0)?{

system . out . println(this . getclass()。getSimpleName()?+?“贏了!”);

system . exit(0);

}

system . out . println(this . getclass()。getSimpleName()?+?“攻擊”

+?p.getClass()。getSimpleName()?+?","

+?this.getClass()。getSimpleName()

+?(this.hitFlag「發動攻擊技能」?:?“無攻擊技能”)

+?p.getClass()。getSimpleName()

+?(this.defenseFlag“發射防禦技能”?:?“防禦技能未激活”)

+?this.getClass()。getSimpleName()?+?":"?+?這個瓦爾。+?","

+?p.getClass()。getSimpleName()?+?":"?+?p . val);

hitFlag?=?假的;

defenseFlag?=?假的;

}

公共?int?防禦(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceDefense)?{

defenseFlag?=?真實;

回歸?p.fight?/?2;//防禦技能激活,傷害減半。

}

回歸?p.fight

}

}包?com.lxi

進口?Java . io . buffered reader;

進口?Java . io . inputstreamreader;

進口?Java . util . random;

//三個字符的基類

抽象?班級?人?{

int?val?//健康值

雙倍?coldTime?//冷卻時間

int?等待時間;//眩暈時間

int?打架;?//攻擊力

int?偶然事件;?//啟動主動技能的概率

int?機會辯護;?//發動防禦技能的概率

抽象?作廢?打(人?p);//攻擊技巧

抽象?int?防禦(人?p);?//防守技能,返回所取點數。

}

班級?DH?延伸?人?{

公共?DH()?{

瓦爾。=?600;

酷暑嗎?=?1.0;

打架?=?30;

偶然事件。=?3;?//表示30%的概率。

機會辯護?=?3;

等待時間?=?0;

}

隨機?蘭德?=?新的?random();

布爾?hitFlag?=?假的;?//主動技能啟動的標識

布爾?defenseFlag?=?假的;?//防禦技能發射的標識

公共?作廢?打(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceHit)?{?//啟動主動性技能

int?受傷了?=?p.defense(本);

帕瓦爾?=?帕瓦爾?-?傷害;

如果?(p.val?& lt=?0)?{

system . out . println(this . getclass()。getSimpleName()?+?“贏了!”);

system . exit(0);

}

瓦爾。=?瓦爾。+?傷害;

如果?(瓦爾?& gt?600)

瓦爾。=?600;

hitFlag?=?真實;?//標記主動技能已經開始。

}?不然呢?{?//進行正常攻擊

int?受傷了?=?p.defense(本);

帕瓦爾?=?帕瓦爾?-?傷害;

如果?(p.val?& lt=?0)?{

system . out . println(this . getclass()。getSimpleName()?+?“贏了!”);

system . exit(0);

}

}

system . out . println(this . getclass()。getSimpleName()?+?“攻擊”

+?p.getClass()。getSimpleName()?+?","

+?this.getClass()。getSimpleName()

+?(this.hitFlag「發動攻擊技能」?:?“無攻擊技能”)

+?p.getClass()。getSimpleName()

+?(this.defenseFlag“發射防禦技能”?:?“防禦技能未激活”)

+?this.getClass()。getSimpleName()?+?":"?+?這個瓦爾。+?","

+?p.getClass()。getSimpleName()?+?":"?+?p . val);

hitFlag?=?假的;?//

defenseFlag?=?假的;?//重置標簽,下次再使用。

}

公共?int?防禦(人?p)?{

如果?(rand.nextInt(10)?& lt?chanceDefense)?{

defenseFlag?=?真實;//標記防禦技能已經激活。

回歸?0;

}?不然呢?{

回歸?p.fight

}

}

}

  • 上一篇:二次元類遊戲
  • 下一篇:僵屍必須死。
  • copyright 2024遊戲中心平台