C# 如何使用Vars初始化列表
我有一个名为Players的类,它拥有不同的player属性。我想使用一个循环来初始化基于特定用户输入的玩家列表。然后我将使用列表与每个玩家玩纸牌游戏。我想这个名单应该是全球性的 我不知道如何初始化列表,因为我似乎无法使用var 尝试创建新玩家时,在名称字段中 谢谢C# 如何使用Vars初始化列表,c#,list,C#,List,我有一个名为Players的类,它拥有不同的player属性。我想使用一个循环来初始化基于特定用户输入的玩家列表。然后我将使用列表与每个玩家玩纸牌游戏。我想这个名单应该是全球性的 我不知道如何初始化列表,因为我似乎无法使用var 尝试创建新玩家时,在名称字段中 谢谢 class Players { public string name; public double bank; public Hands playerHands; //A List of hands
class Players
{
public string name;
public double bank;
public Hands playerHands; //A List of hands played
public Players ()
{
name = "Unknown";
bank = 0.0;
playerHands = null;
}
public Players(string name, double bank, Hands playerHands)
{
this.name = name;
this.bank = bank;
this.playerHands = playerHands;
}
}
class Program
{
private static int numOfPlayers;
private static int numOfDecks;
private static List<Cards> shoe;
public static void Main()
{
Console.OutputEncoding = Encoding.UTF8; //required to display special characters
Hands playerHands = new Hands();
Hands dealerHands = new Hands();
SetUpTable();
//Initilize Players
Players player = new Players("Ken", 100.00, playerHands);
Players dealer = new Players("Dealer", 0.0, dealerHands);
int dealerScore = 0, playerScore = 0;
//Deal initial cards
//The deal starts with the dealer who gets the first card face down
Cards dealerUpCard = null;
Hand dealerHand = new Hand();
Hand playerHand = new Hand();
dealer.playerHands.addHand(dealerHand);
player.playerHands.addHand(playerHand);
for (int iii = 1; iii < 3; iii++)
{
//Deal dealer's hand
dealerHand.addCard(shoe[0]);
dealerScore += shoe[0].value;
if (iii == 2) { dealerUpCard = shoe[0]; }
shoe.RemoveAt(0);
//Deal Player's aHand
playerHand.addCard(shoe[0]);
playerScore += shoe[0].value;
shoe.RemoveAt(0);
}
//Print out the test hands
displayHand(dealer);
displayHand(player);
Console.Read();
}
static void displayHand(Players player)
{
//Print out the test hands
for (int i = 0; i < player.playerHands.hands.Count; i++)
{
Console.Write("{0}'s hand: ", player.name);
for (int j = 0; j < player.playerHands.hands[i].hand.Count; j++)
{
Console.Write(" {0}{1} ", player.playerHands.hands[i].hand[j].rank, (char)player.playerHands.hands[i].hand[j].suit);
}
Console.WriteLine();
}
}
static void SetUpTable()
{
//Create players
numOfPlayers = validateUserInput("How many players (1-6)?",1,6);
for (int i = 0; i<numOfPlayers; i++)
{ //get player elements
//initiliz a new unique player in the Players list
//ie: Players player = new Players("Ken", 100.00, playerHands);
}
//Create shoe of cards
numOfDecks = validateUserInput("How many decks of cards (1-8)?", 1, 8);
shoe = Deck.createDeck(numOfDecks);
Deck.shuffleDeck(shoe, numOfDecks);
}
}
职业玩家
{
公共字符串名称;
公共双银行;
公共手牌玩家手;//已玩手牌的列表
公共玩家()
{
name=“未知”;
bank=0.0;
playerHands=null;
}
公共玩家(弦乐名称、双人组、手牌玩家)
{
this.name=名称;
this.bank=银行;
this.playerHands=playerHands;
}
}
班级计划
{
私人静态玩家;
私有静态数据包;
私人静态列表鞋;
公共静态void Main()
{
Console.outpunecoding=Encoding.UTF8;//需要显示特殊字符
Hands playerHands=新手();
Hands Dealhands=新手();
SetUpTable();
//初始化玩家
玩家=新玩家(“肯”,100.00,玩家手);
玩家经销商=新玩家(“经销商”,0.0,经销商);
int dealerScore=0,playerScore=0;
//发初始卡
//交易开始于第一张牌面朝下的庄家
卡片DealUrupCard=null;
Hand Dealhand=新手();
掌上游戏机手=新手();
dealer.playerHands.addHand(dealerHand);
player.playerHands.addHand(playerHands);
对于(int iii=1;iii<3;iii++)
{
//发牌
dealerHand.addCard(shoe[0]);
dealerScore+=鞋[0]。值;
如果(iii==2){dealurupcard=shoe[0];}
脱鞋(0);
//发牌玩家的牌
playerHand.addCard(shoe[0]);
playerScore+=鞋[0]。值;
脱鞋(0);
}
//打印出测试手
显示手(经销商);
显示手(播放器);
Console.Read();
}
静态无效显示手(玩家)
{
//打印出测试手
for(int i=0;ipublic List ListOfPlayers=new List();
静态无效设置表()
{
//创建玩家
numOfPlayers=6;
对于(int i=0;iPaste保存SetUpTable
的整个类。保存列表的Players对象在哪里?为什么不声明一个var lstPlayers=new list();
,然后在循环中将项添加到其中?lstPlayers.Add(新玩家(…);
。您提到了一个玩家列表,但在您的代码中看不到任何地方,我所看到的只是一个玩家被关在一个场地上。谢谢——正确答案。谢谢似乎总是一个简单的答案。
public List<Players> ListOfPlayers=new List<Players>();
static void SetUpTable()
{
//Create players
numOfPlayers = 6;
for (int i = 0; i<numOfPlayers; i++)
{
ListOfPlayers.Add(new Players());
//or with initial values with ctor:
ListOfPlayers.Add(new Players("Ken", 100.00, playerHands));
//or
ListOfPlayers.Add(new Players(){name="Ken", bank=100.00, playerHands=_playerHands});
//ie: Players player = new Players("Ken", 100.00, playerHands);
}
}