namespace day10 //day11
{
public class Hero
{
public string name;
public int blood;
public int dengJi = 1;
public int money = 0;
public int attack;
public bool isAlive=true;
public bool canUseJineng=false;
public bool isUseJineng=false;
public int magic=0;
public int equipmentCount = 0;
public string saoHua;
public Dictionary<int,Equipment> equipmentList= new Dictionary<int, Equipment>();
public Dictionary<int, JiNeng> jiNengList = new Dictionary<int, JiNeng>();
public Hero()
{ }
public Hero(string name, int blood, int attack,string saoHua)
{
this.name = name;
this.blood = blood;
this.attack = attack;
this.saoHua = saoHua;
}
public void StudyJiNeng(int a,Player player,bool flag)
{
flag = true;
switch (a)
{
case 1:
if (player.Hero.dengJi > 1 && player.Hero.jiNengList[a].isStudy == false)
{
player.Hero.jiNengList[a].isStudy = true;
Console.WriteLine("恭喜你學會了" + player.Hero.jiNengList[a].name);
}
else if (player.Hero.jiNengList[a].isStudy == true)
{
Console.WriteLine("你已經學習了該技能");
}
else
{
Console.WriteLine("二級才能學技能,先去升等級吧。");
Console.WriteLine("-----------------------------------");
}
break;
case 2:
if (player.Hero.dengJi > 4)
{
player.Hero.jiNengList[a].isStudy = true;
Console.WriteLine("恭喜你學會了" + player.Hero.jiNengList[a].name);
}
else
{
Console.WriteLine("五級才能學大招,先去升等級吧。");
Console.WriteLine("-----------------------------------");
}
break;
default:
Console.WriteLine("輸入信息有誤!");
break;
}
}
public void Description(Player player)
{
Console.WriteLine($"{player.Hero.name}的:生命:{player.Hero.blood}" +
$"攻擊:{player.Hero.attack}法強:{player.Hero.magic}");
Console.WriteLine("-------------------------------------------------------");
}
public void UpDengJi()
{
blood += 80;
attack += 5;
dengJi += 1;
money += 500;
}
public void BuyEquipment(Equipment equipment,Player player)
{
if (player.Hero.money > equipment.money && equipmentCount < 3)
{
player.Hero.blood += equipment.blood;
player.Hero.attack += equipment.attack;
player.Hero.magic += equipment.magic;
player.Hero.equipmentList.Add(equipmentCount+1, equipment);
equipmentCount++;
Console.WriteLine($"{player.Hero.name}的信息更新:生命:{player.Hero.blood}" +
$"攻擊:{player.Hero.attack}法強:{player.Hero.magic}");
} else if ( equipmentCount >3)
{
Console.WriteLine("裝備欄滿了");
}
else
{
Console.WriteLine("提莫爺爺說:窮逼,你的錢不夠!");
}
}
}
public enum EquipmentType
{
wuJin,
kuangTu,
daMao,
}
public class Equipment
{
public string name;
public int attack;
public int blood;
public int jiNengUP;
public EquipmentType EquipmentType;
public int magic;
public int money;
public Equipment(string name, int attack, int blood, int jiNengUP, EquipmentType equipmentType, int magic, int money)
{
this.name = name;
this.attack = attack;
this.blood = blood;
this.jiNengUP = jiNengUP;
EquipmentType = equipmentType;
this.magic = magic;
this.money = money;
}
}
public class JiNeng
{
public string name;
public string xiaoGuo;
public bool isStudy = false;
public void Description()
{
Console.WriteLine(name+":"+xiaoGuo);
}
public void Using(Player player1,Player player2,int jiNeng )
{
if (player1.Hero.jiNengList[jiNeng].isStudy == false)
{
Console.WriteLine("你還沒有學習這個技能");
Console.WriteLine("蠢啊,浪費了一個回合");
Console.WriteLine("-------------------------------------------");
return;
}
Console.WriteLine($"{player2.Hero.name}受到到了{player1.Hero.name}的技能{player1.Hero.jiNengList[jiNeng].name}。");
if (player1.Hero.name == "亞索")
{
if (jiNeng == 1)
{
player2.Hero.blood -= player1.Hero.attack * 2;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
else if (jiNeng== 2)
{
player2.Hero.blood -= player1.Hero.attack * 7;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
}
if (player1.Hero.name == "蓋倫")
{
if (jiNeng == 1)
{
player2.Hero.blood -= 150+player1.Hero.dengJi*10;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
else if (jiNeng == 2)
{
player2.Hero.blood -= 400+player1.Hero.dengJi * 10;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
}
if (player1.Hero.name == "安妮")
{
if (jiNeng == 1)
{
player2.Hero.blood -= 120+player1.Hero.magic;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
else if (jiNeng == 2)
{
player2.Hero.blood -= 400 + player1.Hero.magic;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}死亡,遊戲結束");
return;
}
}
}
Console.WriteLine($"當前信息:");
player1.Hero.Description(player1);
player2.Hero.Description(player2);
}
public JiNeng()
{ }
public JiNeng(string name,string xiaoGuo)
{
this.name = name;
this.xiaoGuo = xiaoGuo;
}
}
public class Player
{
public string name;
public Hero Hero;
public bool isChuShou=false;
}
public class Attack
{
public int huiHe;
Player player1;
Player player2;
public void getPlayer(Player player1, Player player2)
{
this.player1 = player1;
this.player2 = player2;
}
public void Attacking()
{
Console.WriteLine($"開始戰鬥!{player1.name}先出手");
while (player1.Hero.isAlive && player2.Hero.isAlive)
{
zhanDouJieMian(player1,player2) ;
zhanDouJieMian(player2,player1);
huiHe++;
if (player1.Hero.blood <= 0)
{
Console.WriteLine($"{player1.Hero.name}陣亡!遊戲結束。");
player1.Hero.isAlive = false;
return;
}
if (player2.Hero.blood <= 0)
{
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}陣亡!遊戲結束。");
return;
}
}
}
public void zhanDouJieMian(Player player1, Player player2)
{
Console.WriteLine($"進入{player1.name}({player1.Hero.name})的回合:");
while (player2.Hero.blood>0
)
{
bool isSttudyJiNeng = false;
bool isUpDengJi = false;
bool isFangJiNeng = false;
Console.WriteLine("1 - 普攻,2 - 學習技能,3 - 升等級 ,4-釋放技能,5-買裝備,6-跳過");
Console.WriteLine("-----------------------------------------------------------------");
switch (Console.ReadLine())
{
case "1":
player2.Hero.blood -= player1.Hero.attack;
player1.Hero.money += 300;
if (player2.Hero.blood <= 0)
{
player2.Hero.blood = 0;
player2.Hero.isAlive = false;
Console.WriteLine($"{player2.Hero.name}受到到了{player1.Hero.name}的普攻,已經死亡");
Console.WriteLine("遊戲結束");
return;
}
Console.WriteLine($"{player2.Hero.name}受到到了{player1.Hero.name}的普攻,掉了{player1.Hero.attack}的血");
Console.WriteLine($"當前信息:");
player1.Hero.Description(player1);
player2.Hero.Description(player2);
return;
case "2": //學技能
if (isSttudyJiNeng == false)
{
Console.WriteLine("技能列表(學習)");
for (int i = 1; i <= player1.Hero.jiNengList.Count; i++)
{
Console.WriteLine($"{i}:{player1.Hero.jiNengList[i].name}");
}
Console.WriteLine("1-查看技能,2-學習技能");
switch (Console.ReadLine())
{
case "1":
Console.WriteLine("查看哪個?");
int b;
b = int.Parse(Console.ReadLine());
player1.Hero.jiNengList[b].Description();
Console.WriteLine("------------------------");
break;
case "2":
while (isSttudyJiNeng == false)
{
Console.WriteLine("你要學習哪個?");
Console.WriteLine("----------------------------------------------");
int a = int.Parse(Console.ReadLine());
player1.Hero.StudyJiNeng(a,player1,isSttudyJiNeng);
break;
}
break;
default:
Console.WriteLine("輸入信息錯誤");
break;
}
}
break;
case "3":
if (isUpDengJi == false)
{
player1.Hero.UpDengJi();
Console.WriteLine($"{player1.Hero.name}的等級提升爲{player1.Hero.dengJi}");
Console.WriteLine($"獲得500金錢,血量加80,攻擊加5。你變禿了,也更強了");
Console.WriteLine("-----------------------------------------------------------");
isUpDengJi = true;
player1.Hero.Description(player1);
} //升級
break;
case "4":
if (isFangJiNeng == false) //放技能
{
Console.WriteLine("-------------------------------------------");
Console.WriteLine("技能列表(釋放)");
for (int i = 1; i <= player1.Hero.jiNengList.Count; i++)
{
Console.Write($"{i}:{player1.Hero.jiNengList[i].name}");
}
Console.WriteLine("輸錯了就沒機會了哦!(輸錯跳過本回合)");
Console.WriteLine("---------------------------------------------");
switch (Console.ReadLine())
{
case "1":
player1.Hero.jiNengList[1].Using(player1,player2,1);
break;
case "2":
player1.Hero.jiNengList[1].Using(player1, player2, 2);
break;
default:
Console.WriteLine("輸入錯誤信息");
Console.WriteLine("-----------------------------------------------------");
return;
}
}
return;
case "5":
if (player1.Hero.equipmentList.Count >= 3)
{
return;
}
else
{
Console.WriteLine("你要買什麼?1-無盡(攻擊加10),2-狂徒(血量加50)" +
",3-大帽(技能加成30%)");
Console.WriteLine("-----------------------------------------");
}
switch (Console.ReadLine())
{
case "1":
Equipment wuJin = new Equipment("無盡",30,0,0,EquipmentType.wuJin,0,3400);
player1.Hero.BuyEquipment(wuJin,player1);
break;
case "2":
Equipment kuangTu = new Equipment("狂徒", 0,300, 0, EquipmentType.wuJin, 0, 3000);
player1.Hero.BuyEquipment(kuangTu, player1);
break;
case "3":
Equipment daMao = new Equipment("大帽", 0, 0, 30, EquipmentType.wuJin, 0, 3600);
player1.Hero.BuyEquipment(daMao, player1);
break;
}
break;
case "6":
return;
default:
Console.WriteLine("輸入信息有誤");
return;
}
}
}
}
class Program
{
static void Main(string[] args)
{
Dictionary<int, Hero> heroList=new Dictionary<int, Hero>();
Hero yaSuo = new Hero("亞索", 600, 63,"死亡如風,哎呀別打臉。。。。");
JiNeng zhanGangShan = new JiNeng("斬剛閃","向前方迅速拔劍,造成普攻2倍傷害");
JiNeng KuangFengJueXiZhan = new JiNeng("狂風 絕息斬","擊飛對手,連續進行7次普攻");
yaSuo.jiNengList.Add(1, zhanGangShan);
yaSuo.jiNengList.Add(2, KuangFengJueXiZhan);
Hero gaiLun = new Hero("蓋倫", 1000, 60,"哥有四多蘭,對面都是菜!");
JiNeng BieTMShuoHua = new JiNeng("蛋蛋的憂傷", "(沉默)造成150點絕對傷害");
JiNeng ZhengYiDeZhiCai = new JiNeng("正義制裁","造成400的絕對傷害");
gaiLun.jiNengList.Add(1, BieTMShuoHua);
gaiLun.jiNengList.Add(2, ZhengYiDeZhiCai);
Hero anNi = new Hero("安妮", 630, 60,"火焰,是我最喜歡的玩具。");
JiNeng HuoYan = new JiNeng("火焰","造成120點傷害");
JiNeng XiaoXiong = new JiNeng("你看見我的小熊了嘛", "大熊屁股騎他臉,造成400點傷害");
anNi.jiNengList.Add(1,HuoYan);
anNi.jiNengList.Add(2,XiaoXiong);
heroList.Add(1, yaSuo);
heroList.Add(2, anNi);
heroList.Add(3, gaiLun);
Player player1 = new Player();
Console.WriteLine("輸入玩家1姓名");
player1.name = Console.ReadLine();
Console.WriteLine("你要用哪個英雄?");
for (int i = 1; i < heroList.Count+1; i++)
{
Console.WriteLine($"{i}:{heroList[i].name},血量:{heroList[i].blood},攻擊:{heroList[i].attack},打招呼:{heroList[i].saoHua}");
}
int a = int.Parse(Console.ReadLine());
player1.Hero = heroList[a];
Console.WriteLine($"{player1.name}使用了{player1.Hero.name}");
Player player2 = new Player();
Console.WriteLine("輸入玩家2姓名");
player2.name = Console.ReadLine();
Console.WriteLine("你要用哪個英雄?");
for (int i = 1; i < heroList.Count + 1; i++)
{
Console.WriteLine($"{i}:{heroList[i].name},血量:{heroList[i].blood},攻擊:{heroList[i].attack},打招呼:{heroList[i].saoHua}");
}
int b = int.Parse(Console.ReadLine());
player2.Hero = heroList[b];
Console.WriteLine($"{player2.name}使用了{player2.Hero.name}");
Attack attack = new Attack();
attack.getPlayer(player1, player2);
attack.Attacking();
}
}
}
具體功能就不一一調試了。偶爾輸入錯誤會炸裂233333.。