[小学]猜数字小游戏ver1.26及后续开发建议
以下为源代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RM
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("****猜数字游戏****");
Console.WriteLine("****ver1.2****");
Console.WriteLine("Copyright Guan heng-Ye");
case1:
Console.WriteLine("请输入1--6的值");
Console.WriteLine(">1.简单<\n>2.较易<");
Console.WriteLine(">3.普通<");
Console.WriteLine(">4.较难<");
Console.WriteLine(">5.困难<\n>6.疯狂<\n>7.RM应用<");
Console.WriteLine("=8.清屏=");
Console.WriteLine("?9.关于?");
Console.WriteLine("{0.退出}");
string str = Console.ReadLine();
if (str == "")//空格,无输入
{
Console.Clear();
Console.WriteLine("您尚未输入任何数据~");
goto case1;
}
if (str == "1")//简单
{
Console.Clear();
Console.WriteLine("简单");
Console.WriteLine("请输入1--20的值");
Random c = new Random();
int s = c.Next(1, 21);
int z = int.Parse(Console.ReadLine());
do
{
if (z == 0)
{
Console.Clear();
Console.WriteLine("返回主菜单");
goto case1;
}
if (z == -1)
{
Console.WriteLine("请输入整数");
z = int.Parse(Console.ReadLine());
}
if (z > 20)
{
Console.WriteLine("请输入小于20的数");
z = int.Parse(Console.ReadLine());
}
else if (z < s)
{
Console.WriteLine("对不起,猜错啦~太小了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
z = int.Parse(Console.ReadLine());
}
else
{
Console.WriteLine("对不起,猜错啦~太大了,请继续猜可能的
(猜不到,请输入0返回菜单~)");数:\n
z = int.Parse(Console.ReadLine());
}
} while (s != z);
Console.Clear();
Console.WriteLine("真行,猜对啦~的确是{0}", z);
Console.ReadLine();
goto case1;
}
else if (str == "2")//较易
{
Console.Clear();
Console.WriteLine("较易");
Console.WriteLine("请输入1--25的数值,您只有10次机会");
Random p = new Random();
int a = p.Next(1, 26);
int b = int.Parse(Console.ReadLine());
for (int i = 0; i < 10; )
{
if(b == 0)
{
Console.WriteLine("返回主菜单");
goto case1;
}
if (a == b)
{
Console.WriteLine("您猜对了。\n您可以尝试一下疯狂级别,但要冷静~");
b = int.Parse(Console.ReadLine());
goto case1;
}
if (b > 25)
{
Console.WriteLine("请输入25以内的数~您还有{0}次机会",10-i);
b = int.Parse(Console.ReadLine());
i--;
}
if (b == -1)
{
Console.WriteLine("请输入正整数~您还有{0}次机会", 10 - i);
b = int.Parse(Console.ReadLine());
i--;
}
else if (b < a)
{
Console.WriteLine("太小了,请您继续输入,否则输入0返回,您还有{0}次机会", 10-i);
b = int.Parse(Console.ReadLine());
i++;
}
else
{
Console.WriteLine("太大了,请您继续输入,否则输入0返回,您还有{0}次机会", 10-i);
b = int.Parse(Console.ReadLine());
i++;
}
}
Console.WriteLine("10次机会已用完,返回主菜单~");
goto case1;
}
else if (str == "3")//普通
{
Console.Clear();
Console.WriteLine("普通");
Console.WriteLine("请输入1--50的数");
Random p = new Random();
int a = p.Next(1, 51);
int b = int.Parse(Console.ReadLine());
do
{
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回主菜单");
goto case1;
}
if (b == -1)
{
Console.WriteLine("请输入整数");
b = int.Parse(Console.ReadLine());
}
if (b > 50)
{
Console.WriteLine("请输入小于50的数");
b = int.Parse(Console.ReadLine());
}
else if (b < a)
{
Console.WriteLine("对不起,猜错啦~太小了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
else
{
Console.WriteLine("对不起,猜错啦~太大了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
} while (a != b);
Console.Clear();
Console.WriteLine("真行,猜对啦的确是{0}", b);
Console.ReadLine();
goto case1;
}
else if (str == "4")//较难
{
Console.Clear();
Console.WriteLine("较难");
Console.WriteLine("请输入1--100的数");
Random p = new Random();
int a = p.Next(1, 101);
int b = int.Parse(Console.ReadLine());
do
{
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回主菜单");
goto case1;
}
if (b == -1)
{
Console.WriteLine("请输入整数");
b = int.Parse(Console.ReadLine());
}
if (b > 100)
{
Console.WriteLine("请输入小于100的数");
b = int.Parse(Console.ReadLine());
}
else if (b < a)
{
Console.WriteLine("对不起,猜错啦~太小了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
else
{
Console.WriteLine("对不起,猜错啦~太大了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
} while (a != b);
Console.Clear();
Console.WriteLine("真行,猜对啦~的确是{0}", b);
Console.ReadLine();
goto case1;
}
else if (str == "5")//困难
{
Console.Clear();
Console.WriteLine("困难");
Console.WriteLine("请输入1--500的数");
Random p = new Random();
int a = p.Next(1, 501);
int b = int.Parse(Console.ReadLine());
do
{
try
{
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回主菜单");
goto case1;
}
if (b == -1)
{
Console.WriteLine("请输入整数");
b = int.Parse(Console.ReadLine());
}
if (b > 500)
{
Console.WriteLine("请输入小于500的数");
b = int.Parse(Console.ReadLine());
}
else if (b < a)
{
Console.WriteLine("对不起,猜错啦~太小了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
else
{
Console.WriteLine("对不起,猜错啦~太大了,请继续猜可能的数:\n(猜不到,请输入0返回菜单~)");
b = int.Parse(Console.ReadLine());
}
}
catch (Exception e) { Console.WriteLine(""); }//未成功执行错误
} while (a != b);
Console.Clear();
Console.WriteLine("真行,猜对啦~的确是{0}", b);
Console.ReadLine();
goto case1;
}
else if (str == "6")//疯狂
{
Console.Clear();
Console.WriteLine("疯狂");
Console.WriteLine("您确定您要玩疯狂等级,请输入0继续。。。");
string ty = Console.ReadLine();
if (ty == "0")
{
Console.Clear();
Console.WriteLine("疯狂");
Console.WriteLine("请输入1--999999的数,您只有五次机会~\n(为了您家人的健康,请勿为此而发疯,注意时间!)");
Random p = new Random();
int a = p.Next(1, 1000000);
int b = int.Parse(Console.ReadLine());
for (int i = 0; i < 5; )
{
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回主菜单");
goto case1;
}
if (b < 0)
{
Console.WriteLine("请输入整数,您还有{0}次机会~", 5 - i);
b = int.Parse(Console.ReadLine());
i--;
}
if (b > 999999)
{
Console.WriteLine("请输入小于999999的数,您还有{0}次机会", 5 - i);
b = int.Parse(Console.ReadLine());
i--;
}
else if (a == b)
{
Console.WriteLine("这样也给你猜对了,真是不可思议啊~");
break;
}
else if (b < a)
{
Console.WriteLine("sorry,猜错了,您还有{0}次机会~", 5 - i);
b = int.Parse(Console.ReadLine());
i++;
}
else
{
Console.WriteLine("sorry,猜错了,您还有{0}次机会~", 5 - i);
b = int.Parse(Console.ReadLine());
i++;
}
}
Console.WriteLine("5次机会已用完,返回主菜单~");
goto case1;
}
else if (ty == "")
{
Console.Clear();
Console.WriteLine("您尚未输入任何数据~(返回主菜单)");
goto case1;
}
}
else if (str == "7")//RM应用
{
labal1:
Console.Clear();
Console.WriteLine("RM应用");
Console.WriteLine("请输入1--2的数\n1表示硬币 \n2表示骰子 \n0返回主菜单");
string qr = Console.ReadLine();
if (qr == "1")
{
qq1:
Console.Clear();
Console.WriteLine("1.硬币");
Console.WriteLine("请输入1--2的数\n1表示正面 \n2表示反面 \n0
返回主菜单");
Random p = new Random();
int a = p.Next(1, 3);
int b = int.Parse(Console.ReadLine());
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回");
goto labal1;
}
if (b > 2)
{
Console.WriteLine("请输入小于2的数,直接返回上二级~");
b = int.Parse(Console.ReadLine());
}
else if (a == b)
{
Console.WriteLine("您赢了就是{0},\n请输入5继续猜,或输入0返回上二级", b);
b = int.Parse(Console.ReadLine());
if (b == 5)
{
Console.Clear();
goto qq1;
}
else if (b == 0)
{
Console.Clear();
goto labal1;
}
}
else
{
Console.WriteLine("您输了是{0},\n请输入5继续猜,或输入0返回", a);
b = int.Parse(Console.ReadLine());
if (b == 5)
{
Console.Clear();
goto qq1;
}
else if (b == 0)
{
Console.Clear();
goto labal1;
}
}
}
else if (qr == "2")//骰子
{
lab1:
Console.Clear();
Console.WriteLine("1.骰子");
Console.WriteLine("请输入1--6的数\n 1--6表示骰子不同的面 \n0返
回");
Random p = new Random();
int a = p.Next(1, 7);
int b = int.Parse(Console.ReadLine());
if (b == 0)
{
Console.Clear();
Console.WriteLine("返回");
goto labal1;
}
if (b > 6)
{
Console.WriteLine("请输入小于6的数,直接返回上二级~");
b = int.Parse(Console.ReadLine());
}
else if (a == b)
{
Console.WriteLine("您赢了就是{0},\n请输入5继续猜,或输入0
返回", b);
b = int.Parse(Console.ReadLine());
if (b == 5)
{
Console.Clear();
goto lab1;
}
else if (b == 0)
{
Console.Clear();
goto labal1;
}
else
{
Console.WriteLine("{0}不是正确数据~直接返回上二级~",
qr);
goto lab1;
}
}
else
{
Console.WriteLine("您输了是{0},\n请输入5继续猜,或输入0
返回", a);
b = int.Parse(Console.ReadLine());
if (b == 5)
{
Console.Clear();
goto lab1;
}
else if (b == 0)
{
Console.Clear();
goto case1;
}
else { Console.WriteLine("{0}不是正确数据~直接返回上二级~
", qr);
goto lab1;
}
}
}
else if (qr == "0")
{
goto case1;
}
}
else if (str == "0")
{ int help; }//我后悔说那句话
else if (str == "8")
{
Console.Clear();
Console.WriteLine("您使用了清屏~");
goto case1;
}
else if (str == "9")
{
Console.WriteLine("版权:Y-G-H\n版本:VER.1.25\n说明:本程序原名 猜数字小游戏,后因加入了某些些功能而改名为RM,RM=Random,程序主要作用都是Random(随机产生数),感谢微软发布了那么完美cs,让我们为微软致敬~\n请输入任意键继续...");
Console.ReadLine();
goto case1;
}
else
{
Console.Clear();
Console.WriteLine("{0}不是指定数据~", str);
goto case1;
}
}
public static int i { get; set; }
}
}
后续开发建议
程序为vs2010,可能会有兼容性的问题~请使用。Net4.0的开发环境 这个程序有以下缺点
1. 使用的是int数据类型,当用户输入太快的时候,没有输入或不是int类型的,就会造成
错误导致用户对游戏的不爽、不满意。解决方法:先将输入的类型改为字串符输入,然
后输入的时候就判断是否为int类型,如果不是,则不转换为int类型,输出相应的错误
提示继续猜~
2. 游戏扩展性,由于时间问题,作者不再继续开发,请大家自由下载,以便学习~
3. 代码太多,感觉技术不行,那就将if判断简化为switch..case…再调用方法,调用方法时,讲一些数据(比如int a)转换至Random ..Next(,)里的‘,’旁边的变量,实现应判断a
本文档为【[小学]猜数字小游戏ver1.26及后续开发建议】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。