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 值 :{语句1;break;}case 值2 :{语句2;break;}default:{语句n+1;break;}=》等价于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=1Levelstatic 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-30int 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{//成长属性提升//成长血量+5g_hp += 5;//成长攻击力+1g_atk += 1;//成长速度+5g_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){//攻击力+5atk += 5;//系统提示事件走向Console.WriteLine(\"少侠骨骼清奇,领悟奇佳,感到武学上有所领悟(攻击力增加了)\");}else{//当前血量-10c_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;//血上限+10hp += 10;//攻击力+2atk += 2;//速度+8speed += 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;}}//如果玩家血量小于等于0if (c_hp<=0){//系统提示死亡Console.WriteLine(\"你被野狗攻击致死,请大侠重新来过\");//跳出整个main函数//return;Environment.Exit(0);}//如果野怪的血量小于等于0else if(gouHp<=0){//获得10金币money += 10;//获得40经验c_exp += 40;//系统提示奖励Console.WriteLine(\"恭喜大侠战胜野狗一条,获得10金币,获得40经验\");//查看当前玩家属性ShowInfo();}}}//升级系统static void LevelUp(){//判断当前经验是否满足升级条件if (c_exp >= exp){//等级+1level += 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();}}}