C# 根据变量显示对象信息
我正在尝试制作一个21点游戏,我有一个函数,可以打印ASCII格式的卡C# 根据变量显示对象信息,c#,C#,我正在尝试制作一个21点游戏,我有一个函数,可以打印ASCII格式的卡 public static void PrintCard() { Console.SetCursorPosition(x + 0, 0); Console.Write(" _____ "); Console.SetCursorPosition(x + 0, 1); Console.Write("|"); Console.SetCurso
public static void PrintCard()
{
Console.SetCursorPosition(x + 0, 0);
Console.Write(" _____ ");
Console.SetCursorPosition(x + 0, 1);
Console.Write("|");
Console.SetCursorPosition(x + 1, 1);
Console.Write(Ten.CardChar);
Console.SetCursorPosition(x + 6, 1);
Console.Write("|");
Console.SetCursorPosition(x + 0, 2);
Console.Write("|");
Console.SetCursorPosition(x + 6, 2);
Console.Write("|");
Console.SetCursorPosition(x + 0, 3);
Console.Write("|");
Console.SetCursorPosition(x + 6, 3);
Console.Write("|");
Console.SetCursorPosition(x + 0, 4);
Console.Write("|");
Console.SetCursorPosition(x + 6, 4);
Console.Write("|");
Console.SetCursorPosition(x + 0, 5);
Console.Write("|");
Console.SetCursorPosition(x + 6, 5);
Console.Write("|");
Console.SetCursorPosition(x + 0, 6);
Console.Write("|____");
if(NameOfCard == "Ten")
{
Console.SetCursorPosition(x + 4, 6);
Console.Write(Ten.CardChar);
}
else
{
Console.SetCursorPosition(x + 5, 6);
Console.Write(Ace.CardChar);
}
Console.SetCursorPosition(x + 6, 6);
Console.Write("|");
由于有不同的卡片,我如何根据字符串变量选择显示哪个CardChar?这些是卡片对象的详细信息,第一个是CardName,第二个是CardValue,第三个是CardChar
static Card Ace = new Card("Ace", 0, "A");
static Card Two = new Card("Two", 2, "2");
static Card Three = new Card("Three", 3, "3");
static Card Four = new Card("Four", 4, "4");
static Card Five = new Card("Five", 5, "5");
static Card Six = new Card("Six", 6, "6");
static Card Seven = new Card("Seven", 7, "7");
static Card Eight = new Card("Eight", 8, "8");
static Card Nine = new Card("Nine", 9, "9");
static Card Ten = new Card("Ten", 10, "10");
static Card Jack = new Card("Jack", 10, "J");
static Card Queen = new Card("Queen", 10, "Q");
static Card King = new Card("King", 10, "K");
当它显示Ten.CardChar时,我如何才能使它与字符串一起工作,例如NameOfCard.CardChar?十存储在卡的名称中的什么位置?我不知道您的问题是否正确,但您已经问过如何根据字符串选择卡?这可以通过使用
字典
类轻松完成:
Dictionary<string, Card> _cards = new Dictionary<string, Card>();
//_cards.Add("ace", Ace);
//or
_cards.Add("ace", new Card("Ace", 0, "A"));
我想选择使用字符串显示哪些信息,例如它的Ten.CardChar,它是一个现有的对象,但如果我使用NameOfCard.CardChar,它就不起作用,即使“Ten”存储在其中。这对你的方法有用吗?不,因为C#是编译语言而不是解释语言。这就是为什么我建议使用
字典
,因为它的作用与您想要的几乎相同。
// instead of :
//if(NameOfCard == "Ten")
//{
// Console.SetCursorPosition(x + 4, 6);
// Console.Write(Ten.CardChar);
//}
//else
//{
// Console.SetCursorPosition(x + 5, 6);
// Console.Write(Ace.CardChar);
//}
// do this :
if(_cards.ContainsKey(NameOfCard))
{
Console.SetCursorPosition(x + 4, 6);
Console.Write(_cards[NameOfCard].CardChar);
}
else
{
Console.SetCursorPosition(x + 5, 6);
Console.Write(Ace.CardChar);
}