C#数字猜谜游戏
我正在尝试用C#创建一个简单的数字猜测游戏。当您单击“生成随机数”按钮时,程序将生成一个随机数。在文本框中输入猜测并单击“猜测”后,程序会让您知道猜测是对还是错 问题是我无法将随机生成的数字传递给myFunction(),这样它就可以验证用户的猜测。这是代码,有点乱;提前感谢大家的帮助C#数字猜谜游戏,c#,C#,我正在尝试用C#创建一个简单的数字猜测游戏。当您单击“生成随机数”按钮时,程序将生成一个随机数。在文本框中输入猜测并单击“猜测”后,程序会让您知道猜测是对还是错 问题是我无法将随机生成的数字传递给myFunction(),这样它就可以验证用户的猜测。这是代码,有点乱;提前感谢大家的帮助 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syst
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Number_guessing_game
{
public partial class Form1 : Form
{
int montH;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
myFunction(int montH);
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int montH = rnd.Next(1, 10);
}
void myFunction(int montH)
{
int guess = int.Parse(textBox1.Text);
if (guess == montH)
{
MessageBox.Show("You win!");
}
if (guess != montH)
{
MessageBox.Show("You lose!");
}
}
}
}
将代码更改为:
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
montH = rnd.Next(1, 10);
}
只需将您的
montH
定义为类级别变量(如您所做的),然后使用以下代码:
int montH;
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
montH = rnd.Next(1, 10); //<--- there is no need to redefine montH by int monthH
}
private void GussButton_Click(object sender, EventArgs e)
{
myFunction(month);
}
int月;
私有无效按钮2\u单击(对象发送者,事件参数e)
{
随机rnd=新随机();
montH=rnd.Next(1,10);//我希望下面的方法对您有效!您不需要做的是将montH放入函数本身,因为它是类的一个可见变量。当您比较guess==montH时,它已经从montH变量中获取指定的montH int并进行检查
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Number_guessing_game
{
public partial class Form1 : Form
{
int montH;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
myFunction();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int montH = rnd.Next(1, 10);
}
void myFunction()
{
int guess = int.Parse(textBox1.Text);
if (guess == montH)
{
MessageBox.Show("You win!");
}
if (guess != montH)
{
MessageBox.Show("You lose!");
}
}
}
}
请尝试以下操作:
namespace Number_guessing_game
{
public partial class Form1 : Form
{
public int montH;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
myFunction(montH);
}
private void Form1_Load(object sender, EventArgs e)
{
montH=0;
}
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
montH = rnd.Next(1, 10);
}
void myFunction(montH)
{
int guess = int.Parse(textBox1.Text);
if (guess == montH)
{
MessageBox.Show("You win!");
}
if (guess != montH)
{
MessageBox.Show("You lose!");
}
}
}
}不要在按钮2\u Click()中创建新的月份。。。否则新的月份只能在这个函数中存活
private void button2_Click(object sender, EventArgs e)
{
Random rnd = new Random();
montH = rnd.Next(1, 10);
}
问题在于您的按钮2\u单击功能。生成随机数后,在函数内部创建一个新的int并将随机数分配给该int,而不是已经声明的类级别变量。将按钮2\u单击更改为以下内容:
private void button2_Click(object sender, EventArgs e)
{
montH = new Random().Next(1,10);
}
我要提到的另外几件事是,因为montH是一个类级变量,类中的每个函数都可以访问它,所以您不需要将它作为参数传递给myFunction()
,事实上,按钮1\u单击
可以为您验证结果:
private void button1_Click(object sender, EventArgs e)
{
if (int.Parse(TextBox1.Text) == montH)
{
MessageBox.Show("You Win!!");
}
else
{
MessageBox.Show("You Lose...");
}
}
您可以使用int.TryParse
,以防用户在my friend上输入非数字字符.spot。我确实无意中声明了两个变量,但仍然将它们视为一个变量,并期望它们能够工作。这巧妙地解决了我的问题。现在我可以添加计数器,让玩家猜3次,甚至可以记分。再次感谢!