C#图形用户界面骰子游戏通过参考
本文关键字:参考 游戏 图形用户界面 | 更新日期: 2023-09-27 18:21:03
好的,我正在尝试制作一个GUI骰子游戏,其中骰子数字用文本框表示。
我必须创建一个表示骰子的类,并且我的至少一个方法必须通过引用正确地传递参数。我的问题是我对类或传递参数没有太多经验
我在上出错rd.RollDice1(参考dice1);rd.RollDice2(参考dice2);(我确信我没有错误地构造RollDice类)有人能帮我吗?
这是我到目前为止的代码:
public partial class Form1 : Form
{
private RollDice rd;
public Form1()
{
InitializeComponent();
rd = new RollDice();
}
private void button1_Click(object sender, EventArgs e)
{
int dice1, dice2;
const int EYE = 1;
const int BOX = 6;
rd.RollDice1(ref dice1);
rd.RollDice2(ref dice2);
string result = string.Format("{0}", dice1);
string result2 = string.Format("(0)", dice2);
textBox1.Text = result;
textBox2.Text = result;
if (dice1 == EYE && dice2 == BOX)
{
MessageBox.Show("You rolled a Snake Eyes!");
}
if (dice1 == BOX && dice2 == BOX)
{
MessageBox.Show("You rolled BoxCars!");
}
else
{
MessageBox.Show("You rolled a {0} and a {1}", dice1, dice2);
}
}
}
}
class RollDice
{
const int EYE = 1;
const int BOX = 6;
public int RollDice1(ref int dieValue1)
{
Random randomNums = new Random();
dieValue1 = randomNums.Next(1, 7);
return dieValue1;
}
public int RollDice2(ref int dieValue2)
{
Random randomNums = new Random();
dieValue2 = randomNums.Next(1, 7);
return dieValue2;
}
}
}
传递带有ref的变量需要使用默认值初始化该变量。如果你没有用初始值设置两个骰子,你的编译器会抱怨"Use of unassigned local variable xxxxx"
private void button1_Click(object sender, EventArgs e)
{
const int EYE = 1;
const int BOX = 6;
int dice1 = EYE;
int dice2 = BOX;
rd.RollDice1(ref dice1);
rd.RollDice2(ref dice2);
.....
然而,查看您的代码,不需要使用ref传递这些值,您可以简单地获得返回值
dice1 = rd.RollDice1();
dice2 = rd.RollDice2();
当然,您应该更改类中的两个方法,以删除ref 传递的参数
class RollDice
{
Random randomNums = new Random();
public int RollDice1()
{
return randomNums.Next(1, 7);
}
public int RollDice2()
{
return randomNums.Next(1, 7);
}
}