同学们今天给大家带来一个利用随机数,while循环语句,for语句,if判断语句制作的一个彩票兑奖的一个小案例,
本文适合c#零基础的同学进行实操,所以用到的知识不是很多,主要学习for循环语句和if判断语句来进行程序的编写。
写代码前我们需要明确我们要实现什么功能。
1.用户需要输入0——50的六个数字
2.生成六个0——50的随机数
3.把用户输入的六个随机数和生成的随机数进行对比
4.比对完后进行判定,猜对一个100,两个200,三个300,4个400,五个500,六个600
现在我们开始代码的编写
第一步我们使用Random random = new Random();方法生成随机数
然后用while循环语句六次生成六个随机数
生成区间可以自己设置random.Next(0到多少区间)
if判断生成随机数不重复
对随机数进行排序
如果猜对一个奖励100以此类推
让用户输入号码
使用for循环语句让用户可以输入六次号码
提示用户第几个号码
然后使用if判断判断用户输入数字是否在我们设置数的区间否则提示用户重新输入
比较并计算奖励,使用for循环进行循环遍历六次,判断用户输入的数字和生成的随机数是否重合,如果重合奖励100,以此类推
再给出提示猜中几个号码,奖励多少
打印出数字,给用户进行比较
现在我们来一起看看运行后的结果吧!
现在一个简单的彩票小游戏就完成了,同学们赶紧跟着我一起动起手来吧!
完整代码附上
public class program
{
class number
{
static void Main(string[] args)
{
Console.WriteLine("----------彩票大狂欢--------");
Random random = new Random();
List<int> randomNumbers = new List<int>();
// 生成6个不重复的随机数
while (randomNumbers.Count < 6)
{
int num = random.Next(1, 10);
if (!randomNumbers.Contains(num))
{
randomNumbers.Add(num);
}
}
// 对随机数进行排序(可选,如果不需要按顺序比较可以省略)
randomNumbers.Sort();
List<int> userGuesses = new List<int>();
int totalReward = 100; // 总奖励
Console.WriteLine("请输入你的号码:");
// 用户输入
for (int i = 0; i < 6; i++)
{
Console.Write($"请输入第{i + 1}个号码: ");
if (int.TryParse(Console.ReadLine(), out int guess) && guess >= 1 && guess <= 50)
{
userGuesses.Add(guess);
}
else
{
Console.WriteLine("请输入范围内的号码(1-50)!");
i--; // 允许用户重新输入当前数字
}
}
// 比较并计算奖励
for (int i = 0; i < 6; i++)
{
if (userGuesses.Contains(randomNumbers[i]))
{
// 注意:这里简单实现,每猜对一个数字就增加100奖励
// 如果想要确保不重复奖励同一个数字,可以使用HashSet或其他逻辑来跟踪
totalReward += 100;
userGuesses.Remove(randomNumbers[i]); // 可选:移除已猜对的数字,避免重复计算奖励
}
}
// 给出反馈
Console.WriteLine($"你总共猜对了{randomNumbers.Count(num => userGuesses.Contains(num))}个号码,奖金:{totalReward}。");
// 如果需要,可以打印出所有数字以便用户验证
Console.WriteLine("彩票中奖号码是:");
foreach (var num in randomNumbers)
{
Console.Write(num + " ");
}
Console.WriteLine();
Console.ReadKey();
}
}
}
同学们大家点点赞,你们的支持才是作者最大的动力,后续作者会继续更新这种小案例提供给同学们学习,谢谢大家!!!!
标签:Console,兑奖,c#,用户,randomNumbers,num,实操,随机数,输入 From: https://blog.csdn.net/jie819800/article/details/142355166