C#猜数字 求助

xybb429 2008-12-23 04:35:31
Windows应用程序
游戏规则:计算机随机产生一个不重复的四位数,玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相同,那么将会是1A,如果数字相同而位置不同,将会显示1B。如:计算机的随机数字为:1234 ,猜的数字为:1354 ,此时计算机会提示为:2A1B,2A表示在这次猜测中,有二个数字及其位置都正确,1B表示有一个数字正确但位置不正确。

题目是这样的,我是初学者,还请各位大大们多多帮助。

题目做了一半 但是还是有很多问题 请有爱的大大们帮忙完善和解释

namespace 猜数游戏
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("游戏规则:计算机随机产生一个不重复的四位数,玩家输入四位不重复的数与计算机给出的数作对比,如果与计算机给出的数的位置相同且数字相同,那么将会是1A,如果数字相同而位置不同,将会显示1B。如:计算机的随机数字为:1234 ,猜的数字为:1354 ,此时计算机会提示为:2A1B,2A表示在这次猜测中,有二个数字及其位置都正确,1B表示有一个数字正确但位置不正确。");
}

int count=0;

private void button2_Click(object sender, EventArgs e)
{
string str2 = textBox1.Text.Trim();
string[] str1list = { "1", "2", "3", "4" };
string[] str2list = { "1", "2", "3", "4" };
int A = 0;
int B = 0;
int C = 0;
string te = "";






while (count == 0)
{
Random rm = new Random();
for (int n = 0; n < 4; n++)
{
str1list[n] = rm.Next(9).ToString();
te += str1list[n].ToString();
} //产生4位随机数
count++;
}



do
{
for (int i = 0; i < 4; i++)
{
str2list[i] = str2.Substring(i, 1);
if (str1list[i].ToString() == str2list[i].ToString())
A++;
} //得到位置数值都对的个数

foreach (string tem in str1list)
{
for (int j = 0; j < 4; j++)
{
if (tem == str2list[j].ToString())
{
B++;
}
}
} //得到数值对的个数

C = B - A; //得到数值对但位置不对的个数



label2.Text = A.ToString() + "A" + C.ToString() + "B" + "|原始数据是:" + te;

count++;
}


while (count > 0 && count < 10 && A != 4);





if(A==4&&C==4)
label2.Text = "答对了!";
else
label2.Text = "你已经没有机会了!|正确答案是:"+te;








}
}
}


...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
医手 2008-12-23
  • 打赏
  • 举报
回复
怀念这个游戏....
偶用js写了一个....
止戈而立 2008-12-23
  • 打赏
  • 举报
回复
给一段我以前写过的代码,验证答案是否正确:cad是int[]类型,存放4位不重复的数字,即标准答案,answ是字符串,存回答者的答案。

			for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(cad[i]==int.Parse(answ[j].ToString()))
{
if(i==j)a++;
else b++;
}
}
}


得到a个A,b个B
如果a==4即为回答正确。
xybb429 2008-12-23
  • 打赏
  • 举报
回复
我快吐血了 老大们别这么冷淡阿 怎么改阿
waiwenlianxi 2008-12-23
  • 打赏
  • 举报
回复
偷偷看了一眼=_=!!

只有DO{}里的A,B,C算的没看出错
waiwenlianxi 2008-12-23
  • 打赏
  • 举报
回复
很多问题?

比起修改很多问题的东西我更喜欢自己写
仅仅是"比起"=_=

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧