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=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();
}
}
}