我正在构建一个BlackJack游戏,而它的主要类是遇到了问题。这是我的代码:
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列。
答案 0 :(得分:4)
错误实际上在第17行 - 这个标识符已经挂掉了干:
Form1.ControlCollection
您要么声明一个字段,要么不应该存在此代码。此代码稍后导致错误,因为解析器正在查找字段名称以使用您放置的类型,并假定您的static Main
方法是随其一起使用的标识符。
答案 1 :(得分: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()”的声明。