Windows窗体应用程序-C#随机数字猜测游戏
在VisualStudio中,我需要一些关于随机数字猜测游戏的帮助。我得到了代码的首当其冲,但我有麻烦与随机数生成器和获得随机数端口到点击事件。和往常一样,我并不真的需要代码,而是需要一些指导和/或解释,说明我做错了什么,以及在初学者学习阶段是否有更有效的方法。下面是我的代码,注释是我遇到麻烦的部分。谢谢你的帮助,因为到目前为止,我得到的帮助是非常重要的Windows窗体应用程序-C#随机数字猜测游戏,c#,visual-studio,windows-forms-designer,C#,Visual Studio,Windows Forms Designer,在VisualStudio中,我需要一些关于随机数字猜测游戏的帮助。我得到了代码的首当其冲,但我有麻烦与随机数生成器和获得随机数端口到点击事件。和往常一样,我并不真的需要代码,而是需要一些指导和/或解释,说明我做错了什么,以及在初学者学习阶段是否有更有效的方法。下面是我的代码,注释是我遇到麻烦的部分。谢谢你的帮助,因为到目前为止,我得到的帮助是非常重要的 using System; using System.Collections.Generic; using System.ComponentM
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 LAB6B
{
public partial class game : Form
{
public game()
{
InitializeComponent();
//Generate Random number between 1 and 100
//Not sure if there is a better way?
Random rand1 = new Random();
int num1 = rand1.Next(1,50);
int num2 = rand1.Next(1,50);
int answer = num1 + num2;
}
private void evaluate_Click(object sender, EventArgs e)
{
int count = 0;
int choice = Convert.ToInt32(guess);
if (guess.Text != string.Empty)
{
// set counter to keep track of how many tries
// should this be done by a loop or will it count without a loop?
count++;
//compare user input against random number
//Can’t import the random number for comparision
if (choice < answer)
{
Evaluate.Visible = false;
lblMessage.Visible = true;
lblMessage.Text = "Too Low!";
Clear.Visible = true;
BackColor = Color.LightSeaGreen;
}
else if (choice > answer)
{
Evaluate.Visible = false;
lblMessage.Visible = true;
lblMessage.Text = "Too High!";
Clear.Visible = true;
BackColor = Color.SlateBlue;
}
else
{
//Display correct message along with how many times it took to get it
MessageBox.Show(" Eso es CORRECTO! It took you {0} tries. ", count);
}
}
}
private void Clear_Click(object sender, EventArgs e)
{
guess.Text = "";
Evaluate.Visible = true;
lblMessage.Visible = false;
Clear.Visible = false;
BackColor = Color.PowderBlue;
}
}
}
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Windows.Forms;
名称空间LAB6B
{
公共部分类游戏:形式
{
公共游戏()
{
初始化组件();
//生成1到100之间的随机数
//不确定是否有更好的方法?
Random rand1=新的Random();
int num1=rand1.Next(1,50);
int num2=rand1.Next(1,50);
int-answer=num1+num2;
}
私有void\u单击(对象发送者,事件参数e)
{
整数计数=0;
int choice=Convert.ToInt32(猜测);
if(guess.Text!=string.Empty)
{
//设置计数器以跟踪尝试次数
//这应该由循环完成,还是在没有循环的情况下计数?
计数++;
//将用户输入与随机数进行比较
//无法导入随机数进行比较
如果(选择<回答)
{
评估。可见=假;
lblMessage.Visible=true;
lblMessage.Text=“太低!”;
清晰可见=真实;
BackColor=Color.LightSeaGreen;
}
else if(选项>答案)
{
评估。可见=假;
lblMessage.Visible=true;
lblMessage.Text=“太高!”;
清晰可见=真实;
BackColor=Color.SlateBlue;
}
其他的
{
//显示正确的消息以及获取消息的次数
Show(“Eso es CORRECTO!您尝试了{0}次。”,count);
}
}
}
私有无效清除\u单击(对象发送者,事件参数e)
{
猜一猜。Text=“”;
评估。可见=真实;
lblMessage.Visible=false;
清晰可见=错误;
BackColor=Color.blue;
}
}
}
我认为您有一个范围问题。“answer”变量是在构造函数中声明的,因此它对evaluate\u Click(…)中的代码不可见。我认为您存在范围问题。“answer”变量是在构造函数中声明的,因此它对evaluate\u Click(…)中的代码不可见。看起来需要将answer
声明为类变量。当您在构造函数中声明变量时,它仍然是该方法的局部变量,其他方法无法使用。看起来您需要将answer
声明为类变量。当您在构造函数中声明变量时,它仍然是该方法的局部变量,其他方法无法使用。我真的不知道您想要得到什么答案,但一个明显的错误是,您必须将count
变量定义为成员变量,以便跟踪尝试次数。现在,每次用户按下按钮时,count
将始终初始化为零。我真的不知道您想要回答什么,但一个明显的错误是,您必须将count
变量定义为成员变量,以便跟踪尝试次数。现在,每次用户按下按钮时,计数将始终初始化为零。由于rand1
和answer
变量在构造函数中定义,您只能在构造函数中访问它们。在类级别定义answer
将解决大多数问题,因为您可以从构造函数和单击处理程序访问它,如下所示:
private int answer;
private int count;
public game()
{
InitializeComponent();
//Generate Random number between 1 and 100
Random random= new Random();
// no need for num1 and num2, it's just as random
answer = random.Next(1,101);
}
由于rand1
和answer
变量是在构造函数中定义的,因此只能在构造函数中访问它们。在类级别定义answer
将解决大多数问题,因为您可以从构造函数和单击处理程序访问它,如下所示:
private int answer;
private int count;
public game()
{
InitializeComponent();
//Generate Random number between 1 and 100
Random random= new Random();
// no need for num1 and num2, it's just as random
answer = random.Next(1,101);
}
首先,您需要在页面级声明变量answer
,以便其他页面级函数可以使用它
像这样做
public partial class game : Form
{
int answer;
public game()
{
}
}
在计数器中,您可以使用静态计数器或页面级变量,如变量answer
只要在用户正确猜测后重置计数器即可。首先,您需要在页面级声明变量answer
,以便其他页面级函数可以使用它
像这样做
public partial class game : Form
{
int answer;
public game()
{
}
}
在计数器中,您可以使用静态计数器或页面级变量,如变量answer
只要在用户猜对的时候重置计数器就行了非常感谢,这是我一直在做的事情之一。谢谢你的解释!非常感谢你,这是我一直在做的事情之一。谢谢你的解释!我有一种奇怪的感觉,是那样的,但我不确定。谢谢你的快速回复和很好的解释。我有一种奇怪的感觉,是这样的,但我不确定。谢谢你的快速回复