请问 C#中如何用ArryList类编写一个猜数字游戏?

Windows窗体应用程序游戏规则:计算机随机产生一个不重复的四位数,button1:玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相... Windows窗体应用程序
游戏规则:计算机随机产生一个不重复的四位数,
button1:玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相同,那么将会是1A,如果数字相同而位置不同,将会显示1B。如:计算机的随机数字为:1234 ,猜的数字为:1354 ,此时计算机会提示为:2A1B,2A表示在这次猜测中,有二个数字及其位置都正确,1B表示有一个数字正确但位置不正textBox1::每一步xAyB的结果都能显示在上面‘
button2:用来显示那个答案。
button3:退出程序

题目是这样的,请大家提供一下输入数字以后点击按钮后执行的程序代码并注释,我是初学者,还请大家多多帮助。谢谢啦。
是C#的程序哦。
展开
 我来答
嗨糊袋味近握28
2011-07-05 · TA获得超过549个赞
知道答主
回答量:259
采纳率:0%
帮助的人:0
展开全部
现做了一个
源码在这里下载:https://skydrive.live.com/embedicon.aspx/.Public/GuessNumber.rar?cid=7aba3d0e716ce828&sc=documents
贴出核心代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GuessNumber
{
/// <summary>
/// 表示随机的四位数
/// </summary>
class RandomNumber
{
private string number;
private Random randomGenerator;

/// <summary>
/// 检查字符串中是否有重复字符
/// </summary>
/// <param name="numberString">字符串</param>
/// <returns>是否有重复字符</returns>
private bool CheckIsRepeat(string numberString)
{
for (int i = 0; i < numberString.Length - 1; i++)
{
for (int j = i + 1; j < numberString.Length; j++)
{
if (numberString[i] == numberString[j])
{
return true;
}
}
}
return false;
}

public RandomNumber()
{
randomGenerator = new Random();
}

/// <summary>
/// 生成随机四位数
/// </summary>
public void Generate()
{
do
{
number = randomGenerator.Next(1000, 10000).ToString();
}
while (CheckIsRepeat(number));//确保无重复数字
}

/// <summary>
/// 验证猜想
/// </summary>
/// <param name="numberString">猜测数字</param>
/// <param name="result">验证结果</param>
/// <returns>猜想是否正确</returns>
public bool Verify(string numberString, out string result)
{
if (numberString.Length != 4 || numberString[0] == '0')
{//检查位数
result = "不是四位数";
return false;
}

if (CheckIsRepeat(numberString))
{//检查重复
result = "数字有重复";
return false;
}

int a = 0, b = 0;
for (int i = 0; i <= 3; i++)
{
if (numberString[i] < '0' || numberString[i] > '9')
{
result = "不是数字";
return false;
}
if (number[i] == numberString[i])
{
a++;//位置相同且数字相同
}
else if (number.Contains(numberString[i]))
{
b++;//数字相同而位置不同
}
}
result = string.Format("{0}A{1}B", a, b);
return a == 4;
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式