簡易文字小游戲
在學習了一些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
{
//裝備型別 C#基礎知識學習 之 ? 簡易文字小游戲
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, int atk, int speed, int jineng)
{
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;
//衣服
static Equip Clothes;
//鞋子
static Equip Shoes;
//戒指
static Equip 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-43
num = 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 35
Battle("強盜首領", 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 35
Battle("反賊首領", 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;
//選擇要不要釋放技能
/* 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();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276280.html
標籤:其他
上一篇:Unity UGUI制作雷達圖/天賦圖/屬性圖/能力圖,因為太怕痛就全點了防御力
下一篇:表白小游戲

