views:

502

answers:

2

I am building a game of BlackJack and the main class for it is having a problem. This is my code:

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()
        {



        }
    }
}

The error is in Line 21, Column 9.

+3  A: 

The error is actually on line 17 - this identifier is hanging out to dry:

Form1.ControlCollection

Either you meant to declare a field or this code shouldn't be there. This code is causing a error later on since the parser is looking for a field name to go with the type you have put there and assumes that your static Main method is the identifier that goes with it.

Andrew Hare
That is the error, however the problem is much bigger :(
leppie
thank you, but now I seem to have another problem. I am now getting six errors that look like this:Non-invocable member 'WindowsFormsApplication1.Form1.textBox2' I have 4 of these.Non-invocable member 'WindowsFormsApplication1.Form1.textBox2' cannot be used like a method.I have 2 of these. Please help.
David
+1  A: 
static Form1 f1 = new Form1();
    Form1.ControlCollection // What is this? You forgot to write something there?



    static void start()

The compiler thinks that there is a declaration which starts with "Form1.ControlCollection" and continues with "static void start()".

Dmitriy Matveev