0

我正在构建一个二十一点游戏,它的主要课程有问题。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public class blackjack
    {

        static string[] playercards = new string[11];
        static string hitstay = "";
        static int total = 0, count = 1, dealertotal = 0;
        static Random cardshuffler = new Random();
        static Form1 f1 = new Form1();
        Form1.ControlCollection



        static void start()
        {
            dealertotal = cardshuffler.Next(15, 22);
            playercards[0] = deal();
            playercards[1] = deal();

            bj();
        }


        private static void hit()
        {

            count += 1;
            playercards[count] = deal();
            f1.textBox2("you were dealed a(n) " + playercards[count] + ".your new total is " + total + ".");
            if (total.Equals(21))
            {
                f1.textBox2("you got blackjack! the dealer's total was " + dealertotal + ".would you like to play again?");
                playagain();
            }
            else if (total > 21)
            {
                f1.textBox2("you busted, therefore you lost. sorry. the dealer's total was " + dealertotal + ".would you like to play again? y/n");
                playagain();
            }
            else if (total < 21)
            {
                do
                {
                    f1.textBox2("would you like to hit or stay?");
                    hitstay = Console.ReadLine();
                } while (!hitstay.Equals("hit") && !hitstay.Equals("stay"));
                bj();
            }
        }

        private static string deal()
        {
            string Card = "";
            int cards = cardshuffler.Next(1, 14);
            switch (cards)
            {
                case 1: Card = "Two"; total += 2;
                    break;
                case 2: Card = "Three"; total += 3;
                    break;
                case 3: Card = "Four"; total += 4;
                    break;
                case 4: Card = "Five"; total += 5;
                    break;
                case 5: Card = "Six"; total += 6;
                    break;
                case 6: Card = "Seven"; total += 7;
                    break;
                case 7: Card = "Eight"; total += 8;
                    break;
                case 8: Card = "Nine"; total += 9;
                    break;
                case 9: Card = "Ten"; total += 10;
                    break;
                case 10: Card = "Jack"; total += 10;
                    break;
                case 11: Card = "Queen"; total += 10;
                    break;
                case 12: Card = "King"; total += 10;
                    break;
                case 13: Card = "Ace"; total += 11;
                    break;

            }
            return Card;
        }

        static void bj()
        {
            if (hitstay.Equals("hit"))
            {
                hit();
            }
            else if (hitstay.Equals("stay"))
            {
                if (total > dealertotal && total <= 21)
                {
                    Form1.textBox2.show("you won! the dealer busted with " + dealertotal + " as their total"  +  "your total was " + total);
                    playagain();
                }
                else if (total < dealertotal)
                {
                    Form1.textBox2.show("sorry, you lost! the dealer's total was " + dealertotal );
                    playagain();
                }

            }
        }

        private static void playagain()
        {



        }
    }
}

错误在第 21 行第 9 列。

4

2 回答 2

4

错误实际上在第 17 行 - 这个标识符正在晾干:

Form1.ControlCollection

要么你打算声明一个字段,要么这个代码不应该在那里。此代码稍后会导致错误,因为解析器正在寻找与您放在那里的类型相符的字段名称,并假定您的static Main方法是与它一起使用的标识符。

于 2009-11-09T03:58:21.747 回答
1
static Form1 f1 = new Form1();
    Form1.ControlCollection // What is this? You forgot to write something there?



    static void start()

编译器认为有一个以“Form1.ControlCollection”开头并以“static void start()”开头的声明。

于 2009-11-09T03:59:50.710 回答