今天有点无聊,闲着没事写了一段代码,代码都很简单,不多说,上代码
/**
*在dos模拟文字游戏英雄联盟
* 需求:
* 选择英雄,初始等级为1,每个英雄都有四个技能
* 攻击获得经验升级,每提升一级,可以升级一个技能,
* QWE技能最高5级,R技能最高3级,分别再6,11,16才可以升级
* 满级为18级,达到18级经验打满,通关
* 步骤:
* 1.定义成员变量:英雄技能的等级以及造成的伤害值
* 2.欢迎,召唤师
* 3.定义英雄初始等级,选择英雄
* 4.打印技能的每个技能
* 5.升级技能
* 6.游戏背景和玩法
* 7.攻击获得经验
* 8.玩家升级,攻击力升级,同时升级需要获得的经验也增多
* 9.玩家升级学习技能,继续打怪
* 10.玩家到达18级,游戏结束
*/
import java.util.Scanner;
public class Game{
//定义成员变量:英雄技能的等级
int q_level = 0;
int w_level = 0;
int e_level = 0;
int r_level = 0;
//定义伤害值
public static int damage;
//main方法
public static void main(String[] args){
int level = 1;
Game game = new Game();
System.out.println("****************************************************************************************************************");
System.out.println(" 欢迎您! 召唤师 ");
System.out.println(" P1:托儿索 P2:小学僧 P3儿童劫 ");
System.out.print(" 请选择您的英雄:");
int noHero = game.chooseHero();
while(noHero == 0){
noHero = game.chooseHero();
}
game.chooseSkill(noHero);
System.out.print(" 请升级您的技能:");
int noSkill = game.upSkill(level);
while(noSkill == 0||noSkill == 4){
//test.upSkill();
noSkill = game.upSkill(level);
}
System.out.println(" 全军出击!");
System.out.println(" 敌军还有30秒到达战场!");
System.out.println(" 您已到达战场!");
System.out.println("****************************************************************************************************************");
System.out.println(" Q,W,E,R释放技能");
System.out.println(" J,普通攻击,K,投降");
System.out.print(" 您发现了敌人,准备战斗:");
//int noFight = game.fight();
for(;level<19;){
for(int experience=0;experience<level*2;){
int noFight = game.fight(level);
System.out.print(" 请攻击敌人:");
if(noFight == 1){
experience+=damage;
}else if(noFight == 2){
System.out.print(" 请攻击敌人:");
continue;
}else{
level = 0;
break;
}
}
if(level == 0){
break;
}
level++;
if(level == 19){
break;
}
System.out.println();
System.out.println(" 您已升级,您现在的等级是"+level+"级");
System.out.println("****************************************************************************************************************");
System.out.print(" 请升级您的技能:");
noSkill = game.upSkill(level);
while(noSkill == 0||(noSkill == 4 && level<6)){
//test.upSkill();
noSkill = game.upSkill(level);
}
System.out.print(" 请攻击敌人:");
}
System.out.println();
System.out.println("----------------------------------------------------------------------------------------------------------------");
System.out.println(" 恭喜您! 尊敬的召唤师 :");
System.out.println(" 您已通关!!! :");
System.out.println("****************************************************************************************************************");
}
//按键进行攻击,伤害量和英雄等级相关
public int fight(int level){
Scanner sca = new Scanner(System.in);
String attack = sca.next();
switch(attack){
case "Q":
if(q_level==0){
System.out.println(" 您还没有学习Q技能");
}else{
damage = 2*q_level;
System.out.println(" 您对敌人使用了Q技能,造成了"+damage+"点伤害!");
}
return 1;
case "W":
if(w_level==0){
System.out.println(" 您还没有学习W技能");
}else{
damage = 2*w_level;
System.out.println(" 您对敌人使用了W技能,造成了"+damage+"点伤害!");
}
return 1;
case "E":
if(e_level==0){
System.out.println(" 您还没有学习E技能");
}else{
damage = 2*e_level;
System.out.println(" 您对敌人使用了E技能,造成了"+damage+"点伤害!");
}
return 1;
case "R":
if(r_level==0){
System.out.println(" 您还没有学习Q技能");
}else{
damage = 5*r_level;
System.out.println(" 您对敌人使用了R技能,造成了"+damage+"点伤害!效果拔群!");
}
return 1;
case "J":
damage = level;
System.out.println(" 您对敌人使用了普通攻击,造成了"+damage+"点伤害!");
return 1;
case "K":
System.out.println(" 您选择了投降,地非特!");
System.out.println("****************************************************************************************************************");
return 0;
default:System.out.println(" 请攻击您的目标");
return 2;
}
}
//英雄升级,升级技能
public int upSkill(int level){
Scanner sca = new Scanner(System.in);
String skill = sca.next();
switch(skill){
case "Q":
if(q_level<5){
System.out.println(" 您已升级了Q技能!");
q_level++;
return 1;
}else if(q_level==5){
System.out.print(" 技能已经满级,请重新选择:");
return 0;
}
case "W":
if(w_level<5){
System.out.println(" 您已升级了W技能!");
w_level++;
return 1;
}else if(w_level==5){
System.out.print(" 技能已经满级,请重新选择:");
return 0;
}
case "E":
if(e_level<5){
System.out.println(" 您已升级了E技能!");
e_level++;
return 3;
}else if(e_level==5){
System.out.print(" 技能已经满级,请重新选择:");
return 0;
}
case "R":
if(level<6){
System.out.print(" 等级不足,无法升级,请重新选择:");
return 4;
}
if(r_level<1&&(level>=6&&level<11)){
System.out.println(" 您已升级了R技能!");
r_level++;
return 1;
}else if(r_level<2&&(level>=11&&level<16)){
System.out.println(" 您已升级了R技能!");
r_level++;
return 1;
}else if(r_level<3&&level>=16){
System.out.println(" 您已升级了R技能!");
r_level++;
return 1;
}else{
System.out.print(" 等级不足,无法升级,请重新选择:");
return 0;
}
default : System.out.print(" 没有找到技能,请重新选择:");
return 0;
}
}
//根据选择的英雄,打印技能
public void chooseSkill(int noHero){
System.out.println(" 你现有技能Q,W,E,R");
switch(noHero){
case 1:
System.out.println(" Q:哈撒给");
System.out.println(" W:咻");
System.out.println(" E:粗驴");
System.out.println(" R:痛里压给痛");
break;
case 2:
System.out.println(" Q:呀!痛");
System.out.println(" W:biu~");
System.out.println(" E:啪,痛");
System.out.println(" R:一库");
break;
case 3:
System.out.println(" Q:手里干");
System.out.println(" W:回首");
System.out.println(" E:掏");
System.out.println(" R:鬼刀一开看不见");
break;
}
}
//选择英雄
public int chooseHero(){
Scanner sca = new Scanner(System.in);
String hero = sca.next();
switch(hero){
case "P1": System.out.println(" 您选择了英雄托儿索");
return 1;
case "P2": System.out.println(" 您选择了英雄小学僧");
return 2;
case "P3": System.out.println(" 您选择了英雄儿童劫");
return 3;
default: System.out.print(" 没有此英雄,请重新选择:");
return 0;
}
}
}