周末制作了一个控制台文字游戏
感兴趣的可以复制代码到控制台玩耍此游戏,耗费2天心血
禁止发布传播!
代码如下(粘贴至Main函数):
string outPutScr = "***************☆☆游戏名:仙女下凡☆☆☆************";
Console.ForegroundColor = ConsoleColor.DarkYellow;
Console.SetCursorPosition((Console.WindowWidth - outPutScr.Length) / 3, 11);
Console.WriteLine(outPutScr);
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("Start……………………");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("某一天放学,你正躺在床上发呆,思恋你的暗恋对象薇薇……");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("你想了一会,闭上眼睛,摇摇头");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“唉,想啥呢,自己那么懦弱的一个人……怎么配得上…ta”");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("你想了一会,闭上眼睛,摇摇头");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("你想起了今天下课又在班里被胖虎打的事情");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("碰巧这一幕还让路过的薇薇看见了");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("而你却在喜欢的女生面前低下了头……………");
Console.ReadKey(true);
Console.Clear();
//有效输入
bool isInputRight = false;
//进入玩家自主选择
while (true)
{
Console.WriteLine("你觉得自己怂吗?");
Console.WriteLine("-----------------------------------------");
Console.WriteLine("1.怂\n" + "2.我是赵日天\n\n");//丰富选项
char inputkey = Console.ReadKey(true).KeyChar;
switch (inputkey)
{
case '1': Console.WriteLine("“哎,怂…………………………………………………\n“怂到家了…………………………………………”"); isInputRight = true; break;
case '2': Console.WriteLine("你装逼被雷劈死了!"); Console.ReadKey(true); Environment.Exit(0); ; break;
}
if (isInputRight)
{
break;
}
else
{
Console.WriteLine("请输入正确字符!");
Console.ReadKey(true);
Console.Clear();
}
}
Console.ReadKey(true);
Console.Clear();
//第二段剧情开始
//进入玩家自主选择
while (true)
{
Console.WriteLine("“算了,先出去撒个尿吧,憋好久了”——你自言自语道");
Console.WriteLine("-----------------------------------------");
Console.WriteLine("1.憋着不尿锻炼PC肌\n" + "2.选择去院子尿尿\n\n");//丰富选项
char inputkey = Console.ReadKey(true).KeyChar;
switch (inputkey)
{
case '1': Console.WriteLine("很遗憾!你被尿憋死了"); Console.ReadKey(true); Environment.Exit(0); break;
case '2': Console.WriteLine("你来到院子"); Console.ReadKey(true); Console.WriteLine("对着一颗大树解开裤带"); isInputRight = false; break;
}
if (!isInputRight)
{
break;
}
else
{
Console.WriteLine("请输入正确字符!");
Console.ReadKey(true);
Console.Clear();
}
}
Console.ReadKey(true);
Console.Clear();
//第三段剧情开始
Console.Write("“我这一辈也就这样了,神也救不了我了吧…”");
Console.ReadKey(true);
Console.Write("——你抖了几下说道");//同一行输出两句话
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("突然!!!");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("天空射来一道彩光,紧接着传来隆隆的声");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“这什么,好刺眼”——你顾不上尿完还没洗的手遮住了眼睛");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("天空射来一道彩光,紧接着传来隆隆的声音");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("你透过指缝看向天空");
Console.ReadKey(true);
Console.WriteLine("宁静的星空下有一道白色的光芒向下坠落着");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("这道光离你家院子位置越来越近,也越来越亮……");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("扑通一声,白光坠落在你家院子的灌木丛里");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“咦?”");
Console.ReadKey(true);
Console.Clear();
//进入玩家自主选择
while (true)
{
Console.WriteLine("是否走过去查看异常?");
Console.WriteLine("-----------------------------------------");
Console.WriteLine("1.不去,有我500T硬盘好看?回去睡觉\n" + "2.真奇怪,我要去看看,没准捡个大宝贝\n\n");//丰富选项
char inputkey = Console.ReadKey(true).KeyChar;
switch (inputkey)
{
case '1': Console.WriteLine("强撸灰飞烟灭,你死了!"); Console.ReadKey(true); Environment.Exit(0); break;
case '2': Console.WriteLine("你跑过去,看见一只雪白色的猫狼狈的躺在草里"); isInputRight = true; break;
}
if (isInputRight)
{
break;
}
else
{
Console.WriteLine("请输入正确字符!");
Console.ReadKey(true);
Console.Clear();
}
}
Console.ReadKey(true);
Console.Clear();
//第四段剧情开始
Console.WriteLine("这只猫的大腿处有一道长长的伤痕");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("伤口处有蓝色的光点不停的冒出来");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("这只猫的大腿处有一道长长的伤痕");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("猫大口喘着气,它感应到你的存在");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("一点点睁开眼睛用余光看着你");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“救……我……”猫虚弱的说");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“什么?你能说话??”");
Console.ReadKey(true);
Console.Clear();
Console.Write("“原来你在这!”");
Console.ReadKey(true);
Console.Write("——头顶有一个声音");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("一个手拿镰刀穿着黑衣的人盯着白色的猫");
Console.ReadKey(true);
Console.Clear();
Console.Write("“莉丝,跟我走,回奥古对你也好。”");
Console.ReadKey(true);
Console.Write("——黑衣人冷冷的说");
Console.ReadKey(true);
Console.Clear();
Console.Write("“你死了这条心吧,休想拿到我的紫血阴!”");
Console.ReadKey(true);
Console.Write("——白猫咬着牙说");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“既然你执意如此,为了我凌九的名声,今天你必须死!”");
Console.ReadKey(true);
Console.Clear();
Console.Write(" “横一文字斩!”");
Console.ReadKey(true);
Console.Clear();
Console.Write("说完黑衣人拿起镰刀便挥砍出一道剑气");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“卧槽!这TM……”");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("你来不及惊讶,眼看一道刀刃般锋利的剑气袭来……");
Console.ReadKey(true);
Console.Clear();
Console.Write("“要死了……”");
Console.ReadKey(true);
Console.Clear();
Console.Write(" 你看见大树都倒在剑气下");
Console.ReadKey(true);
Console.Clear();
Console.Write("“混蛋,便宜你了!”");
Console.ReadKey(true);
Console.Write("——白猫对你碎了一口");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("它用爪子划了你手臂一下,用舌头舔了一下爪子的血液");
Console.ReadKey(true);
Console.Clear();
Console.Write("“你干什么!”");
Console.ReadKey(true);
Console.Write("——你生气的说道");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("“我受伤了无法战斗!想活就跟我结成血契!快点!!”");
Console.ReadKey(true);
Console.Clear();
//进入玩家自主选择
while (true)
{
Console.WriteLine("是否念咒缔结契约?");
Console.WriteLine("-----------------------------------------");
Console.WriteLine("1.缔结血契\n" + "2.从家里跑路\n\n");//丰富选项
char inputkey = Console.ReadKey(true).KeyChar;
switch (inputkey)
{
case '2': Console.WriteLine("被横一文字斩击杀,你死了!"); Console.ReadKey(true); Environment.Exit(0); break;
case '1': Console.WriteLine("莉丝全身发光,从白猫变成了一个美丽的少女"); isInputRight = false; break;
}
if (!isInputRight)
{
break;
}
else
{
Console.WriteLine("请输入正确字符!");
Console.ReadKey(true);
Console.Clear();
}
}
Console.ReadKey(true);
Console.Clear();
//进入下一剧情
Console.WriteLine("莉丝念咒:“");
Console.ReadKey(true);
Console.WriteLine("升起的太阳之魂啊,吾再次欢迎汝 ");
Console.ReadKey(true);
Console.WriteLine("让崭新的一天开始,让吾的心也同样如此");
Console.ReadKey(true);
Console.WriteLine("带走吾的烦恼,用汝炙热的阳光将其燃烧殆尽 ");
Console.ReadKey(true);
Console.WriteLine("让吾内心深处的力量走出夜晚\n\n\n");
Console.ReadKey(true);
Console.WriteLine("升起的太阳之魂啊,吾再次欢迎汝 ");
Console.ReadKey(true);
Console.WriteLine("愉悦之声很快会在吾的耳边响起");
Console.ReadKey(true);
Console.WriteLine("让它们成长,抚慰吾的思绪和内在跳动的心灵 ");
Console.ReadKey(true);
Console.WriteLine("升起的太阳之魂啊,给予吾胜利的意志! ”");
Console.ReadKey(true);
Console.Clear();
Console.Write("结!");
Console.ReadKey(true);
Console.Write("——化身成少女的莉丝身上不断涌出紫光,尽数被你吸走");
Console.ReadKey(true);
Console.Clear();
Console.Write("“你现在已近和我结成血契,身体不要抗拒,我来操控你迎战!”");
Console.ReadKey(true);
Console.Clear();
Console.Write("“砰!”");
Console.ReadKey(true);
Console.Write("----横一文字斩的剑气被你体内涌出的真气震散");
Console.ReadKey(true);
Console.Clear();
Console.Write("“我感觉到强大的力量!”");
Console.ReadKey(true);
Console.Write("----你对白猫说");
Console.Clear();
Console.Clear();
Console.WriteLine("“想不到你竟然甘愿和这么一个蝼蚁结成血契,趁你病要你命!”");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("说着黑衣人挥着镰刀冲了下来!");
Console.ReadKey(true);
Console.Clear();
Console.WriteLine("战斗开始!!!");
Console.ReadKey(true);
Console.Clear();
//和黑衣人战斗代码
//主角数据
Random roll = new Random();
double heroAtk = roll.Next(200,250);//英雄的攻击
double heroMaxHP = 800;//最大血量
double heroHP = heroMaxHP;//血量
bool heroDead = false;//主角英雄的死亡状态
const int ATTACK_1_HERO = 0;
const int ATTACK_2_HERO = 1;
const int ATTACK_BAOQI_HERO = 3;
int heroAttackState = ATTACK_1_HERO;
int round = 1;
//黑衣人数据
const int ATTACK_1_HEIYIREN = 0;//横一文字斩击
const int ATTACK_2_HEIYIREN = 1;//开启防御反击,反弹50%伤害
int heiyirenAttackState = ATTACK_1_HEIYIREN;
double heiyirenAtk = roll.Next(150, 190);//黑衣人普通攻击力
double heiyirenMaxHP = 2000;//最大血量
double heiyirenHP = heiyirenMaxHP;
bool heiyirenDead = false;
double damage2 = heiyirenAtk;//计算出黑衣人实际伤害
double damage1 = heroAtk;//主角伤害
//制造一个无限战斗循环,为避免对今后战斗干扰,在里面给黑衣人赋值
while (true)
{
//回合数记录
#region 初始化
//投币复活,这里默认主角继续战斗,黑衣人血量不重置
if (heroDead)//如果主角投币,则满血复活继续战斗
{
heroHP = heroMaxHP;
heroDead = false;
}
if (heiyirenDead)
{
break;//如果黑衣人死亡,则跳出循环战斗
}
#endregion
//进入战斗
while (true)
{
heiyirenAtk = roll.Next(100, 150);//用骰子得出每回合的攻击力
isInputRight = false;
Console.Clear();
if (heroAttackState == 3)
{
Console.WriteLine("\n》》》请释放超必杀!!!《《《\n\n\n1.水雾灭杀绝 2.引风化雷绝:破\n\n\n");
Char inputkey2 = Console.ReadKey(true).KeyChar;//获取按键映射
switch (inputkey2)
{
case '1': heroAttackState = ATTACK_1_HERO; isInputRight = true; damage1 = 1.5 * heroAtk; Console.WriteLine("你对黑衣人使用了水雾灭杀绝!\n"); break;
case '2': heroAttackState = ATTACK_2_HERO; isInputRight = true; damage1 = 1.5 * heroAtk; Console.WriteLine("你对黑衣人使用了引风化雷绝:破\n"); break;
default: isInputRight = false;break;
}
}
else
{
Console.WriteLine("请释放技能:\n\n1.奔雷破 2.集气\n\n");
Char inputkey = Console.ReadKey(true).KeyChar;//获取按键映射
switch (inputkey)
{
case '1': heroAttackState = ATTACK_1_HERO; isInputRight = true; damage1 = heroAtk; Console.WriteLine("你对黑衣人使用了奔雷破!\n"); break;
case '2': heroAttackState = ATTACK_BAOQI_HERO; isInputRight = true; damage1 = 0; Console.WriteLine("集气!本回合你没有攻击!\n"); break;
}
}
if (isInputRight)
{
//如果是:跳出输入循环
break;
}
else
{
//如果不是:提示你操作有误
Console.WriteLine("你的输入有误");
Console.ReadKey(true);
Console.Clear();
}
}
heiyirenAttackState = roll.Next(2);
Console.WriteLine("黑衣人释放了{0}",heiyirenAttackState==0?"横一文字斩!":"死气化牢!");
Console.ReadKey(true);
if (heiyirenAttackState == 0)
{
damage2 = heiyirenAtk;
Console.WriteLine("横一文字斩造成了{0}伤害!",damage2);
Console.ReadKey(true);
}
if(heiyirenAttackState == 1)
{
damage2 = heiyirenAtk;
damage2 = (int)((float)damage1 * 0.5);
Console.WriteLine("死气化牢防御结阵有效的抵御了你的攻击!并反弹了你伤害!\n对你造成伤害{0}\n", damage2);
Console.ReadKey();
}
Console.WriteLine("\n\n\n\n\n>>战斗记录:第{0}回合\n\n",round);
Console.WriteLine("黑衣人对你造成的伤害是{0}\n", damage2);
Console.WriteLine("你对黑衣人造成的伤害是{0}\n", damage1);
heiyirenHP -= damage1;//heiyiren的血减去伤害
Console.WriteLine("黑衣人还有{0}血", heiyirenHP < 0 ? 0 : heiyirenHP);
heroHP -= damage2;
Console.WriteLine("你还有{0}血", heroHP < 0 ? 0: heroHP);
if (heiyirenHP <= 0)//判定是否死亡
{
heiyirenDead = true;
}
Console.ReadKey(true);//每回合暂停,按键继续
if (heroHP <= 0)
{
heroDead = true;
}
Console.ReadKey(true);//每回合暂停,按键继续
if (heiyirenDead)
{
Console.WriteLine("\n\n*********************你战胜了黑衣人!!!********************************");
Console.ReadKey(true);
break;
}
if (heroDead)
{
Console.WriteLine("你死了,重新进入More World?");
Console.ReadKey(true);
Console.WriteLine("按E键充值继续,其它键死亡");
char inputkey = Console.ReadKey().KeyChar;
if (inputkey == 'e' || inputkey == 'E')
{
Console.WriteLine("充值成功!继续战斗吧骚年!");
}
else
{
Environment.Exit(0); //跳出游戏,死亡
}
}
//回合数记录
round++;
}
Console.Clear();
Console.WriteLine("你们给我等着!我凌九下次来定要你们这对狗男女的命!");
Console.ReadKey();
Console.Clear();
Console.WriteLine("说完凌九用镰刀划开一个口子,破空而去");
Console.ReadKey();
Console.Clear();
Console.WriteLine("“谢谢你了!没有你我今天就要死在这” ——猫女对你说道");
Console.ReadKey();
Console.Clear();
Console.WriteLine("“我叫莉丝,你好啊地上人。”");
Console.ReadKey();
Console.Clear();
Console.WriteLine("“你叫什么名字?”请输入:\n");
Console.ReadKey();
string heroName;
heroName= Console.ReadLine();
Console.Clear();
Console.WriteLine("{0},\n\n\n\n\nMore World的精彩世界将要开启…………",heroName);
Console.ReadKey();
Console.Clear();
string outPutScr2 = "感谢游玩!请期待后续,详细信息请联系1805U3D 薛寒";
Console.ForegroundColor = ConsoleColor.Red;
Console.SetCursorPosition((Console.WindowWidth - outPutScr.Length) / 3, 11);
Console.WriteLine(outPutScr2);
Console.ReadKey();
Console.Clear();
string outPutScr3 = "再见!!!";
Console.ForegroundColor = ConsoleColor.Red;
Console.SetCursorPosition((Console.WindowWidth - outPutScr.Length) / 2, 11);
Console.WriteLine(outPutScr3);
Console.ReadKey();