第二章综合练习小游戏
练习内容
- 向控制台输出“这是学号+姓名的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);
}
}
}