第二章综合练习小游戏
练习内容
- 向控制台输出“这是学号+姓名的C#基础小游戏”。
- 向控制台换行再输出“请输入你的游戏昵称:”。
- 向控制台输入你的游戏昵称,赋给一个字符串变量。
- 向控制台换行再输出“请输入你的性别:”。
- 向控制台输入你的性别,赋给一个字符变量。
- 定义三个整型变量,分别表示你的等级、生命值、伤害值,变量值自定。
- 向控制台换行再输出你的人物属性。
- 以上运行结果如:

- 定义一个布尔变量、和一个字符串变量,分别表示你是否有魔法天赋、和你的天赋技能,默认值分别为“true”、“无”。
- 使用if进行判断,如果你有魔法天赋,则:
(1)向控制台换行再输出如下内容:

- 向控制台换行再输出“请输入你的选择:”。
- 向控制台输入你选择的天赋技能,赋给第10步定义的天赋技能变量。
- 使用switch对输入天赋技能进行判断:
- 如果你输入的是火焰之力,则向控制台换行再输出“恭喜你,你获得了操控火焰的能力,伤害加成30!”。
- 如果你输入的是水之护盾,则向控制台换行再输出“恭喜你,你获得了创建水护盾的能力,伤害加成20!”。
- 如果你输入的是风之疾行,则向控制台换行再输出“恭喜你,你获得了风之加速的能力,伤害加成10!”。
- 如果以上都不是,则向控制台换行再输出“很遗憾,你没有任何能力”。
以上运行结果如:

- 向控制台换行再输出“现在,有一只凶恶的怪物出现在你的面前!”。
- 定义两个整型变量,分别表示怪物的生命值和伤害值,变量值自定。
- 声明一个方法,传入两个参数:你的生命值(第6步定义)和怪物的生命值(第13步定义),方法内容为:向控制台换行再输出你的生命值(第6步定义)和怪物的生命值(第13步定义过),声明完成后,调用该方法。
- 向控制台换行再输出“开始进入战斗!”。
以上运行结果如:

- 使用while循环战斗,当你和怪物一个都没死的时候,(即你的生命值大于0且怪物的生命值大于0的时候),循环执行:
- 玩家攻击怪物:
怪物生命值 = 当前生命值 - 你的伤害值
向控制台换行再输出“你对怪物发起攻击,造成了(你的伤害值)点伤害!”
调用第14步定义的方法,输出你的生命值和怪物的生命值
判断:如果怪物生命值小于等于0,向控制台换行再输出“你成功击败了怪物!”,并结束整个循环。
- 怪物反击:
玩家生命值 = 当前生命值 - 怪物的伤害值
向控制台换行再输出“怪物进行反击,对你造成了(怪物的伤害值)点伤害!”
调用第14步定义的方法,输出你的生命值和怪物的生命值
判断:如果你的生命值小于等于0,向控制台换行再输出“你被怪物击败了!”,并结束整个循环。
以上运行结果如:

- 向控制台换行再输出如下内容:

- 定义一个长度为5的字符串数组变量,用来存你的队友昵称,其中数组第一个值为你的游戏昵称(第3步定义)。
- 使用for循环遍历,向控制台输入你四个队友的昵称,并赋值给数组的第2到第5个值,如:

- 使用for循环遍历数组,向控制台输出数组中的昵称,如:

下面是练习的代码案例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test2
{
    class Program
    {
        static void Main(string[] args)
        {
            //综合练习小游戏
            Console.WriteLine("这是学号:xxx,姓名:xxx的C#基础小游戏");
            Console.WriteLine();
            Console.WriteLine("请输入您的游戏昵称");
            string nemo = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine("请输入您的性别");
            string xb = Console.ReadLine();
            int dj = 1;
            int hp = 100;
            int sh=20;
            Console.WriteLine();
            Console.WriteLine("以下是您的人物属性");
            Console.WriteLine("昵称:"+nemo);
            Console.WriteLine("性别"+xb);
            Console.WriteLine("等级"+dj);
            Console.WriteLine("生命值"+hp);
            Console.WriteLine("伤害值"+sh);
            bool isRain = true;
            
            if (isRain)
            {
                Console.WriteLine("你是一个拥有魔法天赋的玩家");
                Console.WriteLine("你可以选择修炼一个天赋技能:火焰之力,水之护盾,风之疾行");
                Console.WriteLine();
                Console.WriteLine("请输入您的选择");
                //天赋技能
                string tf = Console.ReadLine();
                switch (tf)
                {
                    case "火焰之力":
                        Console.WriteLine();
                        //现在我的伤害值
                        sh += 30;
                        Console.WriteLine("恭喜你,你获得了操控火焰的能力,伤害加成30!");
                        break;
                    case "水之护盾":
                        Console.WriteLine();
                        sh += 20;
                        Console.WriteLine("恭喜你,你获得了创建水护盾的能力,伤害加成20");
                        break;
                    case "风之疾行":
                        Console.WriteLine();
                        sh += 10;
                        Console.WriteLine("恭喜你,你获得了风之加速的能力,伤害加成10");
                        break;
                    default:
                        {
                            Console.WriteLine("很遗憾,你没有任何能力,重开吧兄弟!");
                            break;
                        }
                }
               
            }
            Console.WriteLine();
            Console.WriteLine("现在有一只怪物出现在你面前!");
            int hp1 = 50;//怪物生命值
            int sh1 = 1; //怪物伤害
                         //调用方法
            FangFa1(hp,hp1);
            Console.WriteLine();
            Console.WriteLine("开始进入战斗!");
            Console.WriteLine();
            //开始打架啦!!!
            int i = 1;//攻击次数
            while (hp>=0||hp1>=0)
            {
                //我的攻击
                hp1 -= sh;
                Console.WriteLine();
                Console.WriteLine("你对怪物发起攻击,造成了"+sh+"点伤害");
                FangFa1(hp, hp1);
                //怪物反击
                hp -= sh1;
                Console.WriteLine();
                Console.WriteLine("怪物对你发起攻击,造成了" + sh1 + "点伤害");
                FangFa1(hp, hp1);
                
                if (hp1<=0)
                {
                    Console.WriteLine();
                    Console.WriteLine("你成功击败了怪物");
                    break;
                }else if (hp<=0)
                {
                    Console.WriteLine();
                    Console.WriteLine("你被怪物击杀了");
                    break;
                }
                i++;
                Console.WriteLine("打了" + i + "次");
            }
            Console.WriteLine();
            Console.WriteLine("你走进一个神秘的深林中,发现一座宫殿");
            Console.WriteLine("你需要组成一个五人队伍,才能进入宫殿");
            Console.WriteLine();
            Console.WriteLine("现在开始组队...");
            //开始循环
            string[] arr =new string[5];
              arr[0]=nemo;
            for (int j=1;j<arr.Length;j++)
            {
                Console.WriteLine("请输入第" + (j ) + "个队友的昵称:"+arr[j]);
                arr[j] = Console.ReadLine();
                Console.WriteLine();
            }
            for (int t=0;t<arr.Length;t++)
            {
                Console.WriteLine("组队成功,你的队伍成员有:"+arr[t]);
            }
            Console.WriteLine();
            Console.WriteLine("现在你们可以一起探索宫殿了...");
            Console.WriteLine();
            Console.WriteLine("游戏尚未结束,我们的故事未完待续...");
            Console.ReadKey();
        }
         static void FangFa1(int hp,int hp1)
        {
            Console.WriteLine();
            Console.WriteLine("您的生命值:"+hp);
            Console.WriteLine("怪物的生命值:"+hp1);
        }
    }
}



















