想起来现在基础的已经学了不少了,那么这次试一下用while写一个数字猜谜的。

            Random roll = new Random(); //建立一个骰子
int rollNum = roll.Next(, ); //让骰子在1-100内随机一个数 int num = ; //记录用户的数字
int count = ; //记录猜数字次数
bool input; //判断输入是否正确 Console.WriteLine("请玩家输入一个1-100的数字来进行猜谜"); while (true)
{ input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > || num < )
{
Console.Clear();
Console.WriteLine("输入错误!请玩家输入一个1-100的数字");
Console.ReadKey(true); }
else
{
break;
}
} while (true)
{
while (count < )
{
count++;
if (num == rollNum)
{
Console.WriteLine("真厉害,居然第{0}次就猜中了",count);
break;
}
else if (num > rollNum)
{
Console.WriteLine("你输入的{0}数字大了", num);
Console.WriteLine("请继续输入一个数字进行猜数");
while (true)
{ input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > || num < )
{ Console.WriteLine("输入错误!请玩家输入一个1-100的数字");
Console.ReadKey(true); }
else
{
break;
}
}
}
else
{
Console.WriteLine("你输入的{0}数字小了", num);
Console.WriteLine("请继续输入一个数字进行猜数");
while (true)
{ input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > || num < )
{ Console.WriteLine("输入错误!请玩家输入一个1-100的数字");
Console.ReadKey(true); }
else
{
break;
}
}
}
} while(count < )
{
count++;
if (count == )
{
break;
}
if (num == rollNum)
{ Console.WriteLine("还不错,第{0}次猜中了", count);
break;
}
else if (num > rollNum)
{
Console.WriteLine("你输入的{0}数字大了", num);
Console.WriteLine("请继续输入一个数字进行猜数");
while (true)
{ input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > || num < )
{ Console.WriteLine("输入错误!请玩家输入一个1-100的数字");
Console.ReadKey(true); }
else
{
break;
}
}
}
else
{
Console.WriteLine("你输入的{0}数字小了", num);
Console.WriteLine("请继续输入一个数字进行猜数");
while (true)
{ input = int.TryParse(Console.ReadLine(), out num); if (input == false || num > || num < )
{ Console.WriteLine("输入错误!请玩家输入一个1-100的数字");
Console.ReadKey(true); }
else
{
break;
}
}
}
}
if (count != && num == rollNum)
{
break;
}
else if (count == && num == rollNum)
{
Console.WriteLine("海底捞月,厉害!");
}
else
{
Console.WriteLine("抱歉,你没猜中,正确的数字是"+rollNum);
break;
} }
Console.ReadKey(true);

写的途中调试了很多次。。。也发现一些麻烦的东西,比如每次用户输入我都要判断用户输入的正确性,以后应该可能会学到简单的方法,我觉得应该有那种,写过判断用户输入命令的代码后,可以用一句话调用此代码,而不是我这样长篇复制。。。。反正好不容易自己写成功了,虽然看着很麻烦,不过都是顺着思路走的,应该比较容易看懂。

自己从0开始学习Unity的笔记 IV (C#循环练习-数字猜谜游戏)的更多相关文章

  1. 自己从0开始学习Unity的笔记 IV (C#循环练习输出素数)

    来测试一下循环....刚刚学了while循环,测试一下输出1-100的素数 我想了一下,素数就是只能被1和本身整除,那就是只能被整除2次,我是顺着这个思路写的代码,如果被整除超过2次,那么肯定不是素数 ...

  2. 自己从0开始学习Unity的笔记 I (C#字符串转换为数字)

    我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了. 最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手 ...

  3. 自己从0开始学习Unity的笔记 V (C#的数组练习)

    今天练习了数组输入,先从最简单的开始,因为我输入完这些之后,觉得应该有更简单的方法,先来介绍一下我做的练习代码 //做一个最多能容纳10个数字的,用户可以输入任意1-10个数字,判断长度,输出数字 ] ...

  4. 自己从0开始学习Unity的笔记 VII (C#中类继承练习)

    好久都没有写了.今天做了类继承的练习,做了一个小队,进行简单的判定. namespace 兵团建立练习 { class ServantBasics { public string name; //pr ...

  5. 自己从0开始学习Unity的笔记 VI (C#的for循环练习)

    最近学到了for循环,我觉得其实看情况吧,和while挺像的,不过适合于累加或者累减这类的,for循环要更好用一点 for循环首先格式是 ; i < length; i++) { } 意思很简单 ...

  6. 自己从0开始学习Unity的笔记 III (C#随机数产生基础练习)

    自己开始尝试弄一下随机数,照着方法,自己做了个英雄打怪兽的测试 int heroAttack; ; ; Random attack = new Random(); //初始化一个随机数的类 heroA ...

  7. 自己从0开始学习Unity的笔记 II (C#条件语句基础练习)

    首先,自己用了下三目表达式,来做了一个闰年的判断,也就是能被400整除,或者是能够被4整除,但是不能被100整除的年份. int year; //输入的年 bool fourHunderd; //能被 ...

  8. 自己从0开始学习Unity的笔记 VIII (C#中类继承练习 II)

    自己写了一个关于兵种的,因为一直在测试,到底面向对象是个什么玩意...然后就做了这个 namespace 兵种 { class Role //作为父类,构建一个普通角色属性用于继承 { protect ...

  9. 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)

    先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...

随机推荐

  1. solr统计只返回10或者100个数据的解决办法

    因为我所在的公司为政府做的项目[风险管理系统],其中涉及大量的统计展示,多数以整个市的区划,行业部门等方式返回,在昨天,我发现听过填报单位的方式返回时,始终只有100个数据.通过对比发现,在前辈的代码 ...

  2. python爬虫----基本操作

    一.爬虫基本操作 有些网站和其他网站是有关系(链接),全球的网站就相当于一个蜘蛛网,我们放一只蜘蛛在上面爬,一定能够把网爬个遍.那么如果我们要爬取互联网上内容我们就相当于放一只蜘蛛在上面. 爬虫分为 ...

  3. php自动生成mysql的触发代码。

    如果公司里有上百个表要做触发器,如果手动写代码的话.很累,所以今天写了一个小程序, <?php $dbname = 'test';//数据库 $tab1 = 'user'; //执行的表 $ta ...

  4. java递归之“二叉树”

    物有本末,事有始终,知所先后,则近道矣.-----题记. BotWong半路入行it做码农,也就半年时间,竟“不知天高地厚”地来到了深圳闯天下.一口气投了百个简历,一周后终于有公司邀约面试,除了基础的 ...

  5. VS2017连接Oracle设置

    1. 下载安装 Oracle Developer Tools for Visual Studio 2017: 2. 配置tnsnames.ora ODP.Net默认使用安装目录下的 tnsnames. ...

  6. 28.OGNL与ValueStack(VS)-总结$ # %的区别

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html $用于i18n和struts配置文件 #取得ActionContext的值 ...

  7. CentOS Linux最常用命令及快捷键整理

    最近一直在对CentOS系统进行各种体验,为方便自己也方便他人,整理了Linux常用命令及快捷键,不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样. 常用Linux命令: 文件和目录: ...

  8. 015年传智播客JavaEE 第168期就业班视频教程15-模块规范化

    注册功能最起码得有个用户名和密码吧. bigint相当于Java里面的Long.Long型最大的那个数字是19位,我们这里是20位,绝对够用. userName长度预留20%,让它后期可扩展.6-12 ...

  9. Vue SPA应用中使用Layer的iframe 弹出层,并且传值

    问题来源: BOOS 竟然说喜欢有可移动可最大化的弹出层,这!!! SPA 模式下就是这种引入Vue.js的写法 layer.open({ type: , area: ['840px', '550px ...

  10. Python 入门学习(贰)文件/文件夹正则表达式批量重命名工具

    基于 Udacity 的 Python 入门课程 Programming Foundations with Python 基于 Python 2.7 思路 Project 2 是一个去除文件名中所有数 ...