在dos模拟文字游戏“英雄联盟“

今天有点无聊,闲着没事写了一段代码,代码都很简单,不多说,上代码

/**
*在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;
		}
	}
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43336579/article/details/107720026