当我按下我的按钮Draw A Card(点击)时,我想让我的二十一点游戏给我一张新卡
private void btnDraw_Click(object sender, EventArgs e)
{
Random rdn = new Random();
int YourCardOne = rdn.Next(1, 10 + 1);
this.lblYourCardOne.Text = Convert.ToString(YourCardOne);
这是我必须绘制一张卡片的代码,我希望它再次按下按钮时再绘制另一张卡片,但我不想让它更改第一张卡片。
我尝试过这样做,但每当我按下绘画时它都会改变两张牌,
private void btnDraw_Click(object sender, EventArgs e)
{
Random rdn = new Random();
int YourCardOne = rdn.Next(1, 10 + 1);
this.lblYourCardOne.Text = Convert.ToString(YourCardOne);
Random rdn1 = new Random();
int YourCardTwo = rdn.Next(1, 10 + 1);
this.lblYourCardTwo.Text = Convert.ToString(YourCardTwo);
答案 0 :(得分:0)
也许您可以使用手牌的整体列表
你可以这样做:
List<int> hand = new List<int>();
然后当点击按钮时,添加到列表中:
private void btnDraw_Click(object sender, EventArgs e)
{
Random rdn = new Random();
hand.add(rdn.Next(1, 10 + 1));
答案 1 :(得分:0)
最好的办法是尝试模仿现实世界,而不是尝试将编程模式应用到游戏中。不要使用卡片列表并随机选择一张卡片。你不能在二十一点游戏中这样做,你总是拿顶级卡。这意味着你应该有一个Shuffle()
方法可以随机混合卡片,而另一个方法可以关闭卡片。
这里有一些我从gard游戏中获得的一些示例代码,当我刚刚学习编程时,我可以给你一个关于我对shuffle的意思的例子。在那之后,获得顶级卡的行为是直截了当的。
int deckSize;
public void Shuffle()
{
Random rand = new Random();
//Swap every card with a random card in the deck
for(int count = 0; count < deckSize; count++)
{
int index = rand.Next(deckSize);
Card swapee = cards[index];
cards[index] = cards[count];
cards[count] = swapee;
}
}