AI智能
改变未来

C#基础知识学习 之 ✨ 简易文字小游戏


简易文字小游戏

在学习了一些C#的基础知识后就要做一些小东西来练练手,就比如本文所介绍的一个通过用VS中的C#写的一个简易文字小游戏
这个小游戏只由一个脚本完成,主要是用来拿C#中的一些基础知识完成,比如此脚本中用到的较多的if语句、结构体struct、枚举enum、静态方法staic等。

有兴趣的小伙伴可以自行设置剧情,体验一次游戏小策划的感觉,嘿嘿~
比较适合新手开始用C#的一个小检验,还是挺有趣的,效果图如下:

下面简单地介绍一下脚本大题内容(其实都是很基础的东西,大佬不喜勿喷哦@_@)

脚本一开始定义了一个枚举,用来定义装备的类型,然后有一个结构体是用定义游戏中某件装备的具体属性,然后在Program类中定义了一些角色拥有的属性。
然后第一个方法CreateCharacter,是在Main函数里第一个执行的,是用来创建玩家角色的一个方法,在该方法中定义了一些随机属性,让每一次创建角色的时候都会有所不同(这也是大多数游戏的乐趣所在)。
创建完角色之后就到了我们的第一个游戏场景——新手村!哈哈,果然有了一种角色扮演RPG游戏的感觉了哈~~

在新手村中会碰到一些我们设置的NPC交流,主要也是通过 if 语句来进行的一系列交互(练习if的使用)

然后后边会有好几个场景来进行游戏,包括郊区、长安、强盗山洞、洛阳等等,都是自己随意发挥的啦,主要是增加各种不一样的剧情,让游戏更有意思点,这里就要充分发挥我们的大脑来进行策划的工作了哈哈。
然后在场景中还会碰上商店,商店买东西也是简单的使用了if语句来写的,很简单。

敌人部分

在脚本中定义了一个Battle方法来掌管敌人的属性和战斗逻辑,每当想让玩家碰到敌人的时候就可以调用此方法并设置敌人的名字和攻击力等属性。在此脚本中,是通过Random方法来添加随机遇到敌人来玩的,不会用的要再去看看基础知识了哦

装备道具

然后就是写了一个获得装备并使用的方法EquipItem,每当从商店买来装备或者从NPC处获得装备时,调用此方法就可装备到我们的角色身上。

打印输出log

脚本中自己定义了一个打印输出的方法,很简单,只是用来方便输出语句和让语句停顿一段时间

大体框架就是这样了,主要目的是用来练习C#的基础知识,不至于很枯燥而已。

完整代码如下

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ConsoleApp1{//装备类型enum EquipType{Weapon,Clothes,Shoes,Jiezhi}//装备struct Equip{//装备类型public EquipType type;//名称public string name;//描述public string des;//血量public int hp;//攻击力public int atk;//速度public int speed;//技能释放几率public int jineng;//构造函数public Equip(EquipType type, string name="未装备", string des="未装备", int hp=0, int atk=0, int speed=0, int jineng=0){this.type = type;this.name = name;this.des = des;this.hp = hp;this.atk = atk;this.speed = speed;this.jineng = jineng;}}class Program{//变量声明//姓名static string name = "";//最大血量static int hp;//衣服血量static int clothes_Hp;//当前血量static int c_Hp;//成长血量static int g_hp;//攻击力static int atk;//武器攻击力static int weapon_atk;//成长攻击static int g_atk;//技能几率static int jineng;//戒指加技能几率static int Jiezhi_jineng;//速度static int speed;//鞋子速度static int shoes_speed;//成长速度static int g_speed;//等级 1000经验升一级static int level = 0;//经验static int exp = 0;//金钱static int money = 300;//武器static Equip Weapon=new Equip(EquipType.Weapon);//衣服static Equip Clothes = new Equip(EquipType.Clothes);//鞋子static Equip Shoes = new Equip(EquipType.Shoes);//戒指static Equip Jiezhi = new Equip(EquipType.Jiezhi);//创建角色static void CreateCharacter(){//提示Log("冷风如刀,以大地为砧板,视众生为鱼肉。");Log("万里飞雪, 将苍穹作洪炉, 溶万物为白银。");Log("雪将住, 风未定, 一辆马车自北而来, 滚动的车轮碾碎了地上的冰雪, 却碾不碎天地间的寂寞。");Log("一位英雄的故事也由此展开........");Console.WriteLine("请输入您的大名:");//输入角色名称name = Console.ReadLine();//判断名称是否正确if (string.IsNullOrEmpty(name)){//给与默认名称name = "憨憨";}//血量 随机90到111之间的数hp = new Random().Next(100, 121);c_Hp = hp;//成长血量g_hp = new Random().Next(20, 25);//攻击力atk = new Random().Next(10, 15);//成长攻击g_atk = new Random().Next(1, 4);//释放技能几率jineng = new Random().Next(20, 40);//速度speed = new Random().Next(90, 111);//成长速度g_speed = new Random().Next(10, 16);//给出提示Console.WriteLine("恭喜你!角色创建成功!您的角色名称为:{0}, 血量为:{1}, 攻击力为:{2},释放技能几率为:{3},速度为:{4}。", name, hp, atk, jineng, speed);//休眠Thread.Sleep(2000);//203-242  <205  205-210  210>//基础数值总和int num = hp + speed + atk;if (num < 205){Log("您的角色看起来瘦弱不堪,可能需要重新投胎");}else if (num < 210){Log("您的角色普普通通,努力一点可能会有出息。");}else{Log("您的角色看起来不同常人,浑身充满了王霸之气!!!");}Thread.Sleep(1000);//成长数值总和 30-42 31-33 34-38 39-43num = g_hp + g_speed + g_atk;if (num <= 33){Log("您的角色看起来好像没什么潜力!");}else if (num <= 38){Log("您的角色看起来平平常常,没什么特别之处!");}else{Log("您的角色看起来潜力非凡,浑身透露着不平凡的气息");}//当前属性ShowInfo();}//新手村static void xinShouCun(){//引导Console.WriteLine("您的前方有一名乞丐,另外一侧站着一名富豪,您要与谁对话?");Console.WriteLine("1.乞丐 2.富豪 3.谁都不理");//输入string str = Console.ReadLine();//判断if (str == "1"){//乞丐if (new Random().Next(0, 100) > 70){//残废c_Hp -= 30;//速度speed -= 5;//提示Console.WriteLine("乞丐拿出本绝世武功,可惜没领悟!血量减30!");}else{//成长提升g_hp += 5;g_atk += 1;g_speed += 5;//提示Console.WriteLine("乞丐拿出本绝世武功,你练完后,感觉神清气爽!各项属性有所提高!");}}else if (str == "2"){//富豪if (new Random().Next(0, 100) > 70){//赚钱了money += 20;//提示Console.WriteLine("富豪看你面善,送了你20两银子出去历练。");}else{//血本无归money -= 9;//提示Console.WriteLine("富豪心情不好,叫手下打了你一顿,损失了9两银子T T");}}//离开新手村提示Console.WriteLine("在村民的鼓励声中,你离开了新手村,向长安进发!");//当前属性ShowInfo();}//查看信息static void ShowInfo(){Console.WriteLine("您现在的属性为hp:{0}/({1}+{2}),atk:{3}+{4},speed:{5}+{6},jineng:{7}+{8}, money:{9}", c_Hp, hp, clothes_Hp, atk, weapon_atk, speed, shoes_speed, jineng, Jiezhi_jineng, money);Log("武器:[" + Weapon.name + "],防具:[" + Clothes.name + "],鞋子:[" + Shoes.name + "],戒指:[" + Jiezhi.name+"]");Thread.Sleep(500);}//装备道具static void EquipItem(Equip equip){//区分装备类型switch (equip.type){case EquipType.Weapon:Log(name + "装备了武器:" + equip.name + ",攻击力+" + equip.atk);weapon_atk = equip.atk;//保存装备攻击力Weapon = equip;//保存装备break;case EquipType.Clothes:Log(name + "装备了衣服:" + equip.name + ",血量+" + equip.hp);Clothes.hp = equip.hp;Clothes = equip;break;case EquipType.Shoes:Log(name + "装备了鞋子:" + equip.name + ",速度+" + equip.speed);shoes_speed = equip.speed;Shoes = equip;break;case EquipType.Jiezhi:Log(name + "装备了戒指:" + equip.name + ",技能释放几率+" + equip.jineng);Jiezhi_jineng = equip.jineng;Jiezhi = equip;break;}}//野外static void jiaoQu(){//提示Console.WriteLine("村口站着一名背着行囊的商人,是否对话?1.对话 2.抢劫 3.无视");//输入string str = Console.ReadLine();if (str == "1"){//对话Console.WriteLine("商人笑眯眯的看着你,说道:‘只要给我20两,就能让你脱胎换骨!’是否给予?1.给 2.不给");//输入string str2 = Console.ReadLine();if (str2 == "1" && money >= 20){//扣钱money -= 20;//加属性g_hp += 10;g_atk += 2;g_speed += 8;Console.WriteLine("经过商人的锻炼,你感觉全身充满着力量!");ShowInfo();}else{Console.WriteLine("商人鄙视的看了你一眼,离开了这里。");}}else if (str == "2"){//抢劫int num = hp + speed + atk;//如果大于210,天资聪慧,抢劫都能成功if (num > 210){money += 30;Console.WriteLine("你拿出毕生所学的武功“挠痒痒”,商人被挠的落荒而逃,留下30两银子。");ShowInfo();}else{//抢劫失败Console.WriteLine("你拿出毕生所学的武功“挠痒痒”,却被商人反手击倒,反而被商人挠的不行,并拿走了你所有的金钱并打了你一顿,血量损失20");money = 0;c_Hp -= 20;ShowInfo();}}//走路for (int i = 0; i < 30; i++){Console.WriteLine("按回车按键移动");Console.ReadKey();//几率遇敌if (new Random().Next(0, 6) > 3){if (new Random().Next(0, 100) > 80){//遇敌-强盗Battle("强盗", 60, 20, 90, 10, 5, 10, 1500);}else{//遇敌-无赖Battle("无赖", 40, 20, 95, 5, 5, 3, 500);}}}//进入长安ChangAn();}//进入长安static void ChangAn(){Log("费劲千辛万苦,你终于来到了传说中的大城市,长安。");Log("你看到前面有一个非常热闹的集市,是否去集市看看?1.去 2.不去");string str = Console.ReadLine();if (str == "1"){//集市相关Log("你来到了集市上,看到前方轰乱不堪,似乎有人在打架。你是否上去围观?1.围观 2.不围观,往集市外走去");string str1 = Console.ReadLine();if (str1 == "1"){//围观Log("你走进前一看,原来是一名凶神恶煞的年轻人正在欺负一位老伯。你是否上去帮忙?1.帮忙 2.不帮忙");string str2 = Console.ReadLine();if (str2 == "1"){//帮忙int num = hp + speed + atk;//如果大于220,天资聪慧,帮忙能成功if (num > 220){money += 10;Log("你走上前对着年轻人踢了他个人仰马翻,年轻人悻悻的跑远了");Log("老人非常感激,说这个人经常欺负老人,多亏了你帮忙把他赶跑了,给了你一些银两感谢。");ShowInfo();}else{//帮忙失败Console.WriteLine("你想上去帮忙,结果发现这名年轻人武义超凡,你反而被他打翻在地羞辱了一番并拿走了你所有银子,血量损失10。");money = 0;c_Hp -= 10;ShowInfo();}}}}Log("你看了一眼,心想多一事不如少一事,转头向集市外走去。");//集市外Log("在集市外,有一名僧人与一名道长,是否与之对话?1.僧人 2.道长 ");str = Console.ReadLine();if (str == "1"){//僧人Log("这个僧人看起来衣着简陋,膀大腰圆,看起来不像好人,你上去打了声招呼。");Log("僧人盯着你问道:“施主,可有银两,贫僧已经十天没吃饭了”");Log("是否给僧人30两?1.给 2.抢劫 3.不给");string str2 = Console.ReadLine();if (str2 == "1" && money >= 30){if (new Random().Next(0, 10) > 3){//给money -= 30;Log("僧人拿了钱开心的离开了。你望着僧人的背影,感觉失去了什么。");}else{//给money += 30;Log("僧人笑道:“逗你玩呢,我这边还有一些银两,看你面善,赏给你了”");Log("因为做好事,从僧人处获得了额外30两银子");}}else if (str2 == "2"){//抢劫if (new Random().Next(0, 10) > 3){//等级大于3可以抢劫成功if (level >= 3){Log("僧人看着你感觉有些厉害,乖乖的送上了10两银子,并传授了一些闯荡江湖的经验给你");//exp++exp += 1000;money += 10;}else{Log("僧人看你有点弱,便下手打了你一顿,你丢失了10两银子,还损失了一半血量");money -= 10;c_Hp /= 2;}}else{Log("在你抢劫僧人的时候,被巡街的捕头发现并捉到了监狱中...");Log("坐牢中,还剩1个月");Thread.Sleep(5 * 1000);Log("你出了牢房,在牢房的墙壁上学会了一些前狱友留下的绝世武功,属性提升!");g_speed += 5;ShowInfo();}}}else{//道长Log("这个道长看起来仙风道骨,不像是一个普通人,你颤颤巍巍的上去打了声招呼:“道长你贵姓?”");Log("道长一脸正气的对你说道:“免贵姓张,乃玉皇大帝的后人”。你现在如果给我30两银子,我保你大富大贵一生平安!");Log("是否给道长30两?1.给 2.抢劫 3.不给");string str3 = Console.ReadLine();if (str3 == "1" && money >= 50){if (new Random().Next(0, 10) > 5){//给money -= 50;Log("道长拿了钱瞬间消失了。你望着道长消失的地方,感觉失去了什么。");}else{//给money += 30;Log("你把钱给了道长之后,只见天色大变,一道七彩光芒飘进了你的身体。");Log("你感觉自己的身体在脱胎换骨,所有属性得到提升。");hp += 50;atk += 5;speed += 20;}}else{//抢劫Log("道长看你有点惨,送了你一件武器,定海神针");//获得装备EquipItem(new Equip(EquipType.Weapon, "定海神针", "据说是一位猴王用过的", 0, 5, 0, 0));}}//提示Log("你在长安逗留了一阵后,听说有一群土匪,武功高强,烧杀抢夺,无恶不作,你准备帮长安的百姓除掉这些强盗。");//强盗山洞ChangAnFB();}//强盗山洞static void ChangAnFB(){Log("你爬山涉水终于来到了强盗山洞,开始寻找强盗");//走路for (int i = 0; i < 30; i++){Console.WriteLine("按回车按键移动");Console.ReadKey();//几率遇敌if (new Random().Next(0, 5) > 3){if (new Random().Next(0, 100) > 80){//遇敌-强盗头子Battle("强盗头子", 100, 30, 105, 10, 10, 30, 3000);}else{//遇敌-强盗Battle("强盗", 60, 20, 90, 10, 5, 10, 1500);}}}Log("你终于找到了强盗首领,并发起攻击!为乡民报仇!");//遇敌-强盗首领 200 35Battle("强盗首领", 150, 15, 10, 50, 2, 50, 4000);Log("伴随着你杀死了强盗首领,强盗们纷纷都逃跑了。");LuoYang();}//前往洛阳static void LuoYang(){Log("自从你击败了强盗首领之后,你感觉你自己已经跟大侠没什么区别了,听说洛阳那边出现了一批反贼");Log("于是你向着更远的洛阳城进发着,想着平复反贼然后当个官爽爽。");Log("刚走了没两步,你看到有一个马车赶来,好像也是朝着洛阳城的方向前进。你是否上去询问?1.询问 2.不询问");string str = Console.ReadLine();if (str == "1"){Log("你上去询问了一番,果然也是去洛阳城的,于是给了二两银子搭上了顺风车前往洛阳。");money -= 2;ShowInfo();}else{Log("你没有上去询问,一个人孤独的踏上了前往洛阳的路途");}LuoYangFB();}//到达洛阳static void LuoYangFB(){Log("经历了一番遥远路途的煎熬,你终于来到了洛阳城,心里想着发达的日子就要来临了。");Log("刚到城门口便看到里面火光四起,动荡不安。");for (int i = 0; i < 30; i++){Console.WriteLine("按回车按键移动");Console.ReadKey();//几率遇敌if (new Random().Next(0, 5) > 3){if (new Random().Next(0, 100) > 80){//遇敌-反贼头子Battle("反贼头目", 250, 30, 105, 10, 30, 30, 6000);}else{//遇敌-反贼Battle("反贼", 200, 20, 90, 10, 25, 10, 4000);}}}Log("你终于找到了反贼首领,并发起攻击!为朝廷平复!");//遇敌-强盗首领 200 35Battle("反贼首领", 400, 10, 100, 50, 50, 10, 10000);Log("伴随着你杀死了反贼首领,反贼们纷纷都投降了。");ShowInfo();Log("随着你凭一己之力把反贼们都给歼灭了,朝廷欢喜万分。");Log("连忙叫人来请你过去。是否过去?1.过去 2.不过去,并殴打来的使者");string str = Console.ReadLine();if (str == "1"){//受邀进宫Log("你接收了使者的邀请,跟随着他来到了宫里见到了皇上,皇上问你想要什么封赏。1.黄金百两 2.加官进爵 ");string str1 = Console.ReadLine();if (str1 == "1"){money += 100;Log("你得到了1000银两,从此在皇宫过上了衣食无忧的富贵生活。");}else if (str1 == "2"){Log("你被封为骠骑大将军,皇上送给你一件黄马褂穿,从此在皇宫过上了衣食无忧的富贵生活。");EquipItem(new Equip(EquipType.Clothes, "黄马褂", "皇上御赐的宝贝衣服", 500, 0, 0, 0));}}else{Log("你拒绝了使者的邀请,想冲上去殴打使者,结果发现使者武力高强,你与之发生了战斗");//与使者发生战斗Battle("使者", 500, 15, 100, 10, 30, 10, 10000);if (c_Hp > 0){Log("你把使者打死了,自己前往了皇宫。");//独自进宫Log("你自己来到了宫里见到了皇上,皇上被你这份霸气所折服,忙问你想要什么封赏。1.黄金千两 2.加官进爵 ");string str1 = Console.ReadLine();if (str1 == "1"){money += 1000;Log("你得到了1000银两,从此在皇宫过上了衣食无忧的富贵生活。");}else if (str1 == "2"){Log("你被封为骠骑大将军,皇上送给你一件尚方宝剑,从此在皇宫过上了衣食无忧的富贵生活。");EquipItem(new Equip(EquipType.Weapon, "尚方宝剑", "皇上御赐的宝贝武器", 0, 100, 0, 0));}}}ShowInfo();Log("于是你开始在皇宫为皇上做事,也算是惬意了一段时间。");Log("在皇宫的这段日子,你感受了什么是奢侈的生活,但是这种生活好像束缚着你,你感觉到了厌烦。");Log("于是你决定离开皇宫,继续去外面的大千世界探险。");LuoYangJQ();}//离开洛阳static void LuoYangJQ(){Log("在快要离开皇宫的时候,你看到旁边有几个商铺。");while (true){Log("你想要去哪个逛逛?");ShowInfo();Log("1.武器店 2.防具店 3.鞋店 4.戒指店 5.不逛了,只想离开。");string str = Console.ReadLine();if (str == "1"){Log("你来到了武器店。");Log("1.购买物品 2.出售物品 3.不买,就进来瞅瞅");string str1 = Console.ReadLine();if (str1 == "1"){Log("商人笑嘻嘻的问道:“客人您想要买什么东西呢?我们这里东西不算多,可是贵啊,专门坑老实人。");Log("-----------------------------------");Log("1.青铜刀    攻击力+20    200两银子");Log("2.白银刀    攻击力+30    300两银子");Log("3.黄金刀    攻击力+40    400两银子");Log("4.钻石刀    攻击力+50    500两银子");Log("-----------------------------------");Log("5.太贵了,兜里没有钱一个也买不起   ");string str2 = Console.ReadLine();if (str2 == "1"){if (money >= 200){Log("你购买了青铜刀,并装备上了");money -= 200;EquipItem(new Equip(EquipType.Weapon, "青铜刀", "由青铜打造而成的兵器", 0, 20, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "2"){if (money >= 300){Log("你购买了白银刀,并装备上了");money -= 300;EquipItem(new Equip(EquipType.Weapon, "白银刀", "由白银打造而成的兵器", 0, 30, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "3"){if (money >= 400){Log("你购买了黄金刀,并装备上了");money -= 400;EquipItem(new Equip(EquipType.Weapon, "黄金刀", "由黄金打造而成的兵器", 0, 40, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "4"){if (money >= 500){Log("你购买了钻石刀,并装备上了");EquipItem(new Equip(EquipType.Weapon, "钻石刀", "由钻石打造而成的兵器", 0, 50, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else{Log("进来看看有什么好东西,但是什么也没买。");}}else if (str1 == "2"){Log("商人笑嘻嘻的问道:“客人您想要卖什么东西呢?我们这里虽然店小,可是就喜欢坑老实人。");Log("你好像没什么可以卖");}Log("商人看了你一眼,原来是想白嫖,快点走开,不然叫人凑你!");}else if (str == "2"){Log("你来到了防具店。");Log("1.购买物品 2.出售物品 3.不买,就进来瞅瞅");string str1 = Console.ReadLine();if (str1 == "1"){Log("商人笑嘻嘻的问道:“客人您想要买什么东西呢?我们这里东西不算多,可是贵啊,专门坑老实人。");Log("------------------------------------");Log("1.青铜圣衣    生命值+100   200两银子");Log("2.白银圣衣    生命值+200   300两银子");Log("3.黄金圣衣    生命值+250   400两银子");Log("4.钻石圣衣    生命值+300   500两银子");Log("------------------------------------");Log("5.太贵了,兜里没有钱一个也买不起   ");string str2 = Console.ReadLine();if (str2 == "1"){if (money >= 200){Log("你购买了青铜圣衣,并装备上了");EquipItem(new Equip(EquipType.Clothes, "青铜圣衣", "由青铜打造而成的圣衣", 100, 0, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "2"){if (money >= 300){Log("你购买了白银圣衣,并装备上了");EquipItem(new Equip(EquipType.Clothes, "白银圣衣", "由白银打造而成的圣衣", 200, 0, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "3"){if (money >= 400){Log("你购买了黄金圣衣,并装备上了");EquipItem(new Equip(EquipType.Clothes, "黄金圣衣", "由黄金打造而成的圣衣", 250, 0, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "4"){if (money >= 500){Log("你购买了钻石圣衣,并装备上了");EquipItem(new Equip(EquipType.Clothes, "钻石圣衣", "由钻石打造而成的圣衣", 300, 0, 0, 0));}else{Log("钱不够,尴尬的离开了。");}}else{Log("进来看看有什么好东西,但是什么也没买。");}}else if (str1 == "2"){Log("商人笑嘻嘻的问道:“客人您想要卖什么东西呢?我们这里虽然店小,可是就喜欢坑老实人。");Log("你好像没什么可以卖");}Log("商人看了你一眼,原来是想白嫖,快点走开,不然叫人凑你!");}else if (str == "3"){Log("你来到了鞋店。");Log("1.购买物品 2.出售物品 3.不买,就进来瞅瞅");string str1 = Console.ReadLine();if (str1 == "1"){Log("商人笑嘻嘻的问道:“客人您想要买什么东西呢?我们这里东西不算多,可是贵啊,专门坑老实人。");Log("---------------------------------");Log("1.青铜鞋    速度+100   200两银子");Log("2.白银鞋    速度+150   300两银子");Log("3.黄金鞋    速度+200   400两银子");Log("4.钻石鞋    速度+250   500两银子");Log("---------------------------------");Log("5.太贵了,兜里没有钱一个也买不起 ");string str2 = Console.ReadLine();if (str2 == "1"){if (money >= 200){Log("你购买了青铜鞋,并装备上了");EquipItem(new Equip(EquipType.Weapon, "青铜鞋", "由青铜打造而成的鞋", 0, 0, 100, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "2"){if (money >= 300){Log("你购买了白银鞋,并装备上了");EquipItem(new Equip(EquipType.Shoes, "白银鞋", "由白银打造而成的鞋", 0, 0, 150, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "3"){if (money >= 400){Log("你购买了黄金鞋,并装备上了");EquipItem(new Equip(EquipType.Shoes, "黄金鞋", "由黄金打造而成的鞋", 0, 0, 200, 0));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "4"){if (money >= 500){Log("你购买了钻石鞋,并装备上了");EquipItem(new Equip(EquipType.Shoes, "钻石鞋", "由钻石打造而成的鞋", 0, 0, 250, 0));}else{Log("钱不够,尴尬的离开了。");}}else{Log("进来看看有什么好东西,但是什么也没买。");}}}else if (str == "4"){Log("你来到了戒指店。");Log("1.购买物品 2.出售物品 3.不买,就进来瞅瞅");string str1 = Console.ReadLine();if (str1 == "1"){Log("商人笑嘻嘻的问道:“客人您想要买什么东西呢?我们这里东西不算多,可是贵啊,专门坑老实人。");Log("------------------------------------------");Log("1.青铜戒指    技能释放几率+10   200两银子");Log("2.白银戒指    技能释放几率+20   300两银子");Log("3.黄金戒指    技能释放几率+30   400两银子");Log("4.钻石戒指    技能释放几率+40   500两银子");Log("-----------------------------------------");Log("5.太贵了,兜里没有钱一个也买不起         ");string str2 = Console.ReadLine();if (str2 == "1"){if (money >= 200){Log("你购买了青铜戒指,并装备上了");EquipItem(new Equip(EquipType.Jiezhi, "青铜戒指", "由青铜打造而成的戒指", 0, 0, 0, 10));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "2"){if (money >= 300){Log("你购买了白银戒指,并装备上了");EquipItem(new Equip(EquipType.Jiezhi, "白银戒指", "由白银打造而成的戒指", 0, 0, 0, 20));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "3"){if (money >= 400){Log("你购买了黄金戒指,并装备上了");EquipItem(new Equip(EquipType.Jiezhi, "黄金戒指", "由黄金打造而成的戒指", 0, 0, 0, 30));}else{Log("钱不够,尴尬的离开了。");}}else if (str2 == "4"){if (money >= 500){Log("你购买了钻石戒指,并装备上了");EquipItem(new Equip(EquipType.Jiezhi, "钻石戒指", "由钻石打造而成的戒指", 0, 0, 0, 40));}else{Log("钱不够,尴尬的离开了。");}}else{Log("进来看看有什么好东西,但是什么也没买。");}}}if (str == "5"){break; ;}}DongXue();}//前往山洞static void DongXue(){Log("你离开了洛阳皇宫,来到了洛阳郊区,准备猎杀一些动物当做零食在路上吃。");//走路while (true){Log("");Log("你走着走着来到了一个山洞门口,从里面听到了一丝低吼声,让人听了不自觉的颤抖!");Log("提示:前方有超强BOSS,血量:???,攻击力:???,速度:???,暴击率:???,闪避:???");Log("是否前去挑战? \\n 1.挑战 \\n 2.溜了溜了,在打打怪升级再来 。");string str = Console.ReadLine();if (str == "1"){Log("你表示自己一点也不怂,见谁打谁,说着就进去了。");Log("只见眼前趴着一名浑身晶莹剔透的白色毛发,头顶还有一缕散发金光的毛发似乎像是个“王”字,散发出强大的威严");Log("你刚走进去,它便睁开了双眼发现了你");Log("你才发现这位庞然大物的眼睛居然散发着九种不一样颜色的耀眼光芒,威严瞬间增大了一倍");Log("说着就扑向了你,进入战斗!");//遇敌-九彩神眸圣虎Battle("九彩神眸圣虎", 6666, 20, 250, 50, 20, 40, 30000);Log("伴随着一阵轰鸣声,你终于把九彩神眸圣虎击倒了。");}else//走路for (int i = 0; i < 30; i++){Console.WriteLine("按回车按键移动");Console.ReadKey();//几率遇敌if (new Random().Next(0, 6) > 3){if (new Random().Next(0, 100) > 80){//遇敌-邪眸白虎Battle("邪眸白虎", 700, 20, 150, 20, 30, 30, 15000);}else{//遇敌-玄冥白虎Battle("玄冥白虎", 400, 20, 150, 15, 15, 13, 5000);}}}if (str == "1"){break;}}Log("");}//---------------------------------------------------------------------------------------//战斗 名字 血量 攻击 速度 暴击率(0-100) 闪避率(0-100) 金钱 经验static void Battle(string e_name, int e_hp, int e_atk, int e_speed, int e_satk, int e_miss, int e_money, int e_exp){Console.WriteLine("碰到" + e_name + "!是否消耗5两银子回满血量?1.回满 2.不回");string str = Console.ReadLine();//判断是否回血if (str == "1" && money >= 5){//回满血量c_Hp = hp + clothes_Hp;//消费money -= 5;Log("血量已回满!当前血量为:" + c_Hp + ",当前金钱为:" + money);}//判断先手bool isPlayerAtk = speed + shoes_speed > e_speed;//进入战斗while (true){//如果是玩家攻击if (isPlayerAtk){//下一次就是敌人攻击isPlayerAtk = false;//选择要不要释放技能/*主动技能释放,喜欢的可以加上,目前这个还有些小bug,每回合都会释放,所以注释了~~~**          Log("你是否使用技能? \\n 1.使用技能“万毒掌” \\n 2.使用技能“苦尽甘来” \\n 3.不使用技能");string str1 = Console.ReadLine();if (str1 == "1"){for (int i=1;i<=2;i++){if (e_hp<=0){e_hp = 0;break;}int  num = new Random().Next(e_hp ,e_hp*2);e_hp -= num * 1/10;Log("您使出了主动技能“万毒掌”,攻击了" + e_name + (num * 1/10) + "点血量," + e_name + "血量剩余" + e_hp);}//---------------}else if (str1 == "2"){for (int i = 1; i <= 2; i++){if (c_Hp>=hp){c_Hp = hp;break;}int num = new Random().Next(hp, hp * 2);c_Hp += num * 1 / 10;Log("您使出了主动技能“苦尽甘来”,回复了" +(num * 1 / 10) + "点血量,您的血量剩余" + c_Hp);}}else*///判断闪避if (new Random().Next(0, 100) < e_miss){Log("你挥出一刀,却被" + e_name + "轻巧的躲过!");continue;}//判断会不会释放被动技能//敌人掉血int num1 = new Random().Next(atk + weapon_atk - 2, atk + weapon_atk + 3);e_hp -= num1;if (new Random().Next(0, 100) < jineng){e_hp -= num1 * 3;Log("您使出了被动技能“葵花宝典”,攻击了" + e_name + (num1 * 3) + "点血量," + e_name + "血量剩余" + e_hp);}else{e_hp -= e_atk;Log("玩家对" + e_name + "造成" + num1 + "点血量," + e_name + "血量剩余" + e_hp);}//判断敌人死亡if (e_hp <= 0){int eMoney = new Random().Next(e_money - 1, e_money + 1);int eExp = new Random().Next(e_exp - 50, e_exp + 50);money += eMoney;exp += eExp;Log(e_name + "被击败!您获得了" + eMoney + "金钱与" + eExp + "经验!");//判断玩家是否升级if (exp > level * 1000){//经验exp -= level * 1000;//等级level++;//增加属性hp += g_hp;c_Hp = hp + clothes_Hp;atk += g_atk;speed += g_speed;//  Console.ForegroundColor(ConsoleColor.Red);Log("恭喜升级,当前等级为:" + level);ShowInfo();}break;}}else{//当前是敌人攻击,下一次就是玩家攻击了isPlayerAtk = true;//判断需不需要暴击if (new Random().Next(0, 100) < e_satk){c_Hp -= e_atk * 2;Log(e_name + "使出了吃奶的劲,攻击了玩家" + (e_atk * 2) + "血量,玩家血量剩余:" + c_Hp + "/" + hp);}else{c_Hp -= e_atk;Log(e_name + "攻击了玩家" + e_atk + "点血量,玩家血量剩余:" + c_Hp + "/" + hp);}//如果玩家死亡if (c_Hp <= 0){Log("你好像要死了,是否花费100两银子复活?1.不复活,十八年后又是一条好汉!2.复活 ");string str2 = Console.ReadLine();if (str2 == "1"){//不复活Log("你被" + e_name + "残忍的杀害了");Log("胜败乃兵家常事,18年后又是一条好汉,下辈子努力吧。");//退出Environment.Exit(0);}if (str2 == "2"){//复活if (money >= 100){money -= 100;c_Hp += 100;Log("你选择了复活,当前血量为:" + c_Hp + "当前金币剩余:" + money);}else{//退出Log("你被" + e_name + "残忍的杀害了");Log("胜败乃兵家常事,18年后又是一条好汉,下辈子努力吧。");Environment.Exit(0);}}}}}}//输出static void Log(string text){Console.WriteLine(text);//休眠Thread.Sleep(500);}static void Main(string[] args){//创建角色CreateCharacter();//新手村xinShouCun();//野外jiaoQu();}}}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#基础知识学习 之 ✨ 简易文字小游戏