2020.7.15 c#转换符 运算符 if语句 swith语句 函数 随机数的生成,判断字符是否为空 占位符

day2

显示转换

小数据类型 变量 =(小数据类型)变量;

↑必须都是数字类型
强制转换符
string->int
convert.to类型;
例:

string str=console.ReadLine();
int age=convert.toint32;
system.console.wroteline(“我的年龄是”+age+“岁”);

隐式转换
不会导致数据丢失,不需要任何语法,小转大自动转换

运算符

关系运算符

大于>,<小于,
<=大于等于,>=小于等于,
==等于,!=不等于
返回的是一个bool值

逻辑运算符
&按位与运算 转换成二进制运算(一假全假
18&6 == 2
10010
00110
———
00010
| 按位或运算(一真全真
18 | 6 == 22
10010
00110
———
10110

&& 短路与运算(且
左右放俩bool数值

||短路或运算(或

!非

c#的三大结构
顺序结构
分支结构(条件判断
if if…else
循环结构

if语句

if(条件表达式)
{
   语句;
}

当条件表达式为true,则执行大括号中的所有语句,没满足就跳过大括号里的语句

三目运算符

布尔类型 ? 结果a :结果b;

如果布尔为true 则结果是a,否则是b
例:
A > B ? A : B
若A>B,结果是a

if的第三种形式

if()
{
   语句;
}
else if()
{
   语句二;
}
————
else
{
   语句n;
}

如果第一个为真,执行第一个,如果一为假就执行后面的

switch语句

switch(表达式/变量-大多情况下都是变量)
{
case 值 :{语句1break}
case2{语句2break}
default{语句n+1break}=》等价于else
}

根据表达式的值查找与值匹配的分支,直到遇到break,遇到break则跳出swith继续往下,如果没匹配到就执行default后面的语句然后跳出

函数
在静态的方法里面调用函数也需要是静态的(static)

修饰符    返回类型    函数名称  (传参数的)
{
代码块
}

(void->不需要任何返回值)

//调用函数
函数名 ( ) ;

 if (string.IsNullOrEmpty(name))

判断name字段是否为空

 hp = new Random().Next(90,110);

新生成一个随机数 ↑随机范围(包含
下限不包含上限

Console.WriteLine("恭喜,角色创建成功!您的角色名称为:{0},初始血量为:{1},攻击力为:{2},
速度为:{3}",name,hp,atk,speed);

{0}占位符,字符串后面按顺序添加变量

练习

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day02
{
    class Program
    {
        //姓名
        static string name = "";
        //最大血量
        static int hp;
        //当前血量
        static int c_hp;
        //成长
        static int g_hp;
        //攻击力
        static int atk;
        //成长攻击
        static int g_atk;
        //速度
        static int speed;
        //成长速度
        static int g_speed;
        //等级 1000exp=1Level
        static int level = 1;
        //经验
        static int exp = 100;
        //当前经验值
        static int c_exp = 0;
        //金币
        static int money = 10;
        //幸运值
        static int lucky;
        static string pyz = "排云掌";

        //创建角色
        static void creatrCharacter()
        {
            //系统提示
            Console.WriteLine("请输入你的角色名称:");
            name = Console.ReadLine();
            //判断name字段是否是空值
            if (string.IsNullOrEmpty(name))
            {
                //默认名称
                name = "起不起名";
            }
            //血量
            hp = new Random().Next(90,110);
            //给当前血量赋值
            c_hp = hp;
            //成长血量
            g_hp = new Random().Next(7,12);
            //攻击力
            atk = new Random().Next(7,12);
            //成长攻击
            g_atk = new Random().Next(2, 5);
            //速度
            speed = new Random().Next(90,110);
            //成长速度
            g_speed = new Random().Next(10,16);
            //幸运值
            lucky = new Random().Next(1,200);
            //给出提示
            Console.WriteLine("恭喜,角色创建成功!您的角色名称为:{0}," +
                "初始血量为:{1},攻击力为:{2},速度为:{3}",name,hp,atk,speed);
            //基础属性总和
            int num = hp + speed + atk;
            //成长数值总和19-30
            int num2 = g_atk + g_hp + g_speed;
            //判断人物属性给出提示
            if (num<200 )
            {
                //系统提示
                Console.WriteLine("你的角色有点子弱");
            }
            else if (num>=200 &&num<=210)
            {
                //判断人物属性给出提示
                Console.WriteLine("属性也就一般般! ");
            }
            else
            {
                //判断人物属性给出提示
                Console.WriteLine("不愧是你,你就是欧皇本黄!!!");
            }
            if (num2<=23)
            {
                //判断人物成长属性给出提示
                Console.WriteLine("嘶,你不太行啊这个潜力 ");
            }
            else if (num2>=23&&num2<=27)
            {
                //判断人物成长属性给出提示
                Console.WriteLine("潜力中等,我觉得海星 ");
            }
            else
            {
                //判断人物成长属性给出提示
                Console.WriteLine("不愧是你,潜力牛批");
            }
        }
        //新手村
        static void xinShouCun()
        {
            //提示
            Console.WriteLine("您的前方有一名乞丐,另外一侧站在一位看起来很富有的人" +
                ",请问你要同谁对话");
            Console.WriteLine("1.乞丐    2.富有的人   3.谁都不理");
            //获取玩家选择
            string str = Console.ReadLine();
            //判断玩家选择
            if (str == "1" )
            {
                //乞丐
                //系统提示
                Console.WriteLine("乞丐觉得你根骨奇佳,掏出一本绝世武功");
                //判断事件几率
                if (new Random().Next(0,100) >70)
                {
                    //残废
                    //减掉当前血量30点
                    c_hp -= 30;
                    //减掉基础速度5点
                    speed -= 5;
                    //系统提示失败
                    Console.WriteLine("学武走火入魔,掉了30点血");
                }
                else
                {
                    //成长属性提升
                    //成长血量+5
                    g_hp += 5;
                    //成长攻击力+1
                    g_atk += 1;
                    //成长速度+5
                    g_speed += 5;
                    //系统提示成功
                    Console.WriteLine("少侠领悟超群,学会了绝世武功,感觉神清气爽,各项属性有所提升");
                }
            }
            //判断玩家选择
            else if (str == "2")
            {
                //富有的人
                //判断事件几率
                if (new Random().Next(0, 100) > 70 ||lucky>=130)
                {
                    //得到钱
                    //获得20金币
                    money += 20;
                    //系统提示事件方向
                    Console.WriteLine("富豪觉得你很有潜力,给了你20金币让你出去历练");
                }
                else
                {
                    //破产了
                    //扣掉9金币
                    money -= 9;
                    //系统提示事件方向
                    Console.WriteLine("富豪心情不好,叫人打了你一顿,损失9金币qaq");
                }
            }
            //离开新手村提示
            Console.WriteLine("伴着村名的鼓励声,你离开了新手村,向长安进发");
            //判断玩家幸运值触发隐藏事件
            if (lucky>=130)
            {
                //系统提示
                Console.WriteLine("在离开村子的路上,不经意间崴到脚滚到了一个神秘的山洞中,看到一具白骨,在白骨边上放了一本武功秘籍,你经不住好奇拿起来翻看");
                //判断攻击力走向不同分支
                if( g_atk >= 4)
                {
                    //判断事件方向(概率
                    if (new Random().Next(0,100)<=70)
                    {
                        //攻击力+5
                        atk += 5;
                        //系统提示事件走向
                        Console.WriteLine("少侠骨骼清奇,领悟奇佳,感到武学上有所领悟(攻击力增加了)");
                    }
                    else
                    {
                        //当前血量-10
                        c_hp -= 10;
                        //系统提示事件走向
                        Console.WriteLine("少侠因心境不稳走火入魔,减少了10点血");
                    }
                }
            }
            
        }
        //查看信息
        static void ShowInfo()
        {
            Console.WriteLine("您当前的属性是:" +
                "hp:{0}/{1},攻击力:{2},速度:{3},当前金钱:{4},当前等级:{5},当前经验:{6}/{7}"
                ,c_hp,hp,atk,speed,money,level,c_exp,exp);
        }
        //郊区
        static void jiaoQu()
        {
            //提示
            Console.WriteLine("村口站着一位背着行囊的商人,是否对话");
            Console.WriteLine("1.对话    2.抢劫");
            //获取用户选择
            string str = Console.ReadLine();
            //判断用户选择
            if (str == "1")
            {
                //对话
                Console.WriteLine("商人笑眯眯的看着你说道:“只要给我20金币,就能让你脱胎换骨,一飞冲天!");
                Console.WriteLine("1.给了给了   2.拉倒没钱");
                //获取用户选择
                string str1 = Console.ReadLine();
                //判断用户选择以及金币数量
                if (str1 == "1" && money>=20)
                {
                    //扣掉20金币
                        money -= 20;
                    //血上限+10
                        hp += 10;
                    //攻击力+2
                        atk += 2;
                    //速度+8
                        speed += 8;
                    //提示
                        Console.WriteLine("你感到一阵神清气爽,武学上有所领悟(属性提升)");
                    //查看人物属性
                        ShowInfo();

                }
                else
                {
                    //系统提示
                    Console.WriteLine("商人一脸不屑的看了你一眼离开了这个位置");
                }
                }
            //判断用户选择
            else if(str == "2")
            {
                //计算人物初始属性
                int num = hp + speed + atk;
                //抢劫
                //判断人物属性是否足够抢劫
                if (num>210||lucky>=180)
                {
                    //获得30金币
                    money += 30;
                    //获得100点经验
                   c_exp += 100;
                    //系统提示
                    Console.WriteLine("你掏出了一把刀,商人落荒而逃,获得了30金币,获得了100经验");
                    //查看人物属性
                    ShowInfo();
                }
                else
                {
                    //如果不成功扣掉当前10血量
                    c_hp -= 10;
                    //系统提示
                    Console.WriteLine("抢劫失败,商人鄙视的看了你一眼并且把你打了一顿,掉了10点血");

                }
            }
            //遇到野怪提示
            Console.WriteLine("你遇到了一匹野生的疯狗,要跑路吗?");
            Console.WriteLine("1.跑啥干他!    2.告辞告辞打不过");
            //获取用户选择
            string str2 = Console.ReadLine();
            //判断用户选择
            if (str2 == "1")
            {
                //设置野怪血量
                int gouHp= 30;
                //设置野怪攻击力
                int gouAtk = 4;
                //设置野怪速度
                int gouSpeed = new Random().Next(90,120);
                //打野怪,如果玩家和野怪都活着就继续循环
                while (gouHp>=0&&c_hp>=0)
                {
                    //判断玩家和野怪的速度,如果玩家比野怪快就玩家先攻击
                    if (speed > gouSpeed)
                    {
                        //系统提示玩家攻击
                        Console.WriteLine("你打了疯狗一拳,他掉了{0}点血", atk);
                        //减掉野怪等同于玩家攻击力的血量
                        gouHp -= atk;
                        //系统提示野怪攻击
                        Console.WriteLine("疯狗咬了你一下,你掉了{0}点血",gouAtk);
                        //减掉玩家等同于野怪攻击力的当前血量
                        c_hp -= gouAtk;
                    }
                    else
                    {
                        //系统提示野怪攻击
                        Console.WriteLine("疯狗咬了你一下,你掉了{0}点血", gouAtk);
                        //减掉玩家等同于野怪攻击力的当前血量
                        c_hp -= gouAtk;
                        //系统提示玩家攻击
                        Console.WriteLine("你打了疯狗一拳,他掉了{0}点血", atk);
                        //减掉野怪等同于玩家攻击力的血量
                        gouHp -= atk;
                    }
                }
                //如果玩家血量小于等于0
                if (c_hp<=0)
                {
                    //系统提示死亡
                    Console.WriteLine("你被野狗攻击致死,请大侠重新来过");
                    //跳出整个main函数
                    //return;
                    Environment.Exit(0);
                }
                //如果野怪的血量小于等于0
                else if(gouHp<=0)
                {
                    //获得10金币
                    money += 10;
                    //获得40经验
                    c_exp += 40;
                    //系统提示奖励
                    Console.WriteLine("恭喜大侠战胜野狗一条,获得10金币,获得40经验");
                    //查看当前玩家属性
                    ShowInfo();

                }
            }

        }
        //升级系统
        static void LevelUp()
        {
            //判断当前经验是否满足升级条件
            if (c_exp >= exp)
            {
                //等级+1
                level += 1;
                //当前经验值减去经验值上限
                c_exp = c_exp - exp;
                //升级后血量上限提升
                hp += g_hp;
                //把当前血量补满上限
                c_hp = hp;
                //攻击力提升
                atk += g_atk;
                //速度提升
                speed += g_speed;
                //经验值上限提升
                exp += 100;
                //系统提示
                Console.WriteLine("恭喜大侠升级了!");
            }
        }
        //补血系统
        static void healthUp()
        {
            //判断当前血量
            if (c_hp <= 5)
            {
                //提示
                Console.WriteLine("可以使用1枚金币恢复血量,是否恢复");
                Console.WriteLine("1.恢复     2.不了");
                //获取用户选择
                string str = Console.ReadLine();
                //判断用户选择和金币数量
                if (str == "1" && money >= 1)
                {
                    //扣1金币回满血
                    money -= 1;
                    c_hp = hp;
                    Console.WriteLine("已经为少侠恢复血量");
                    //查看当前属性
                    ShowInfo();
                }

            }
        }
        //技能
        static void PaiYunZhang()
        {
            //技能伤害参数
            int pyzAtk = atk + new Random().Next(3,5);
            //技能释放提示
            Console.WriteLine("你使用了排云掌,造成了{0}点伤害",pyzAtk);
        }

        static void Main(string[] args)
        {
            //创建角色
            creatrCharacter();
            //查看信息
            ShowInfo();
            //新手村
            xinShouCun();
            //查看信息
            ShowInfo();
            //郊区
            jiaoQu();
            //升级系统
            LevelUp();
            //查看信息
            ShowInfo();
        }
    }
}

你可能感兴趣的:(2020.7.14-)