想起来现在基础的已经学了不少了,那么这次试一下用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. Getting Started(入门)

    欢迎阅读专门针对android开发者的培训课程,在这一系列的课程中,描述了如何通过我们的示例代码来完成特定的任务和功能,这些代码可以灵活地应用到你的应用程序中. 课程被分成了几部分, 第一部分,入门, ...

  2. ES6系列_15之class类的使用

    JS语言的传统方法是通过构造函数,定义并生成新对象,是一种基于原型的面向对象系统.在ES6中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象.1.先来看看es5与es ...

  3. layui 弹框

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&q ...

  4. go_结构体和方法

    面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传 ...

  5. 0. ACM系列算法

    0.1 数学 0.1.1 概率 http://www.cnblogs.com/jiu0821/tag/%E6%A6%82%E7%8E%87/ 0.1.2 代数 0.1.2.1 Polya 0.1.2. ...

  6. 286 walls and gate最近的出口

    [抄题]: 您将获得一个使用这三个可能值初始化的 m×n 2D 网格.-1 - 墙壁或障碍物. 0 - 门. INF - Infinity是一个空房间.我们使用值 2 ^ 31 - 1 = 21474 ...

  7. Ruby快速入门

    Rb是什么 ? 交互式Ruby(IRB)为实验提供了一个shell.内置IRB shell,你可以立即一行行查看表达式的结果.该工具自带Ruby安装,所以你必须做一些额外的IRB工作无关.只需键入在命 ...

  8. c语言静态断言-定义自己的静态断言

    c语言里面可以自己定义静态断言,更加方便的调试代码. 使用静态断言 #include<stdio.h> #include<stdlib.h> #include<asser ...

  9. 使用mybatis提供的各种标签方法实现动态拼接Sql。使用sql片段提取重复的标签内容

    Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的,如下: <select id="findUserByNameAndSex" par ...

  10. Resolving multicopy duplications de novo using polyploid phasing 用多倍体相位法解决多拷贝复制的新问题

    抽象.虽然单分子测序系统的兴起已经实现组装复杂地区的能力空前提高在基因组中,基因组中的长节段重复仍然是装配中具有挑战性的前沿. 分段重复同时具有丰富的基因并且倾向于大的结构重排,使得它们的序列的分辨率 ...