簡體   English   中英

C#大酒杯游戲

[英]C# Blackjack Game

我想讓我的二十一點游戲給我一張新卡,當我按下按鈕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);

也許相反,您可以使用整數列表

你可以像這樣使你的手:

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));

最好的選擇是嘗試模擬現實世界,而不是嘗試將編程模式應用於您的游戲。 不要使用卡片列表,而是隨機選擇一張。 您不會在二十一點游戲中做到這一點,您總是拿最高的牌。 這意味着您應該有一個Shuffle()方法,該方法隨機地混合卡片,而另一個方法則是去除頂部卡片。

這是我在學習編程時從Gard游戲中獲得的一些示例代碼,可能會為您提供我對洗牌意味着什么的示例。 在那之后,拿到頂牌的行為是直接的。

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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM